常用api与集合(黑马)
【Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程(含Java项目和Java真题)】https://www.bilibili.com/video/BV1Cv411372m?p=140&vd_source=9f87a7ce44630c11c1428c5f90d42fbb
Objects工具类
Objects是一个static final工具类,提供一系列静态方法

包装类

其实用valueof就行


StringBulider
工具类 操作String 效率比String高

StringBuffer
功能与StringBuilder几乎一样 区别在于StringBuffer是线程安全的
StringBuilder是线程不安全的
BigDecimal
解决浮点数计算失真的问题
小知识:Cctrl+shift+空格 显示代码建议

集合
List和Set

collection集合常用方法

迭代器
1.
其实就是用迭代器对集合实现遍历

2.增强for循环可以用于遍历集合(相当于用迭代器遍历集合)
例:Collection c
for(type elem : c){} 每轮循环遍历到元素赋值给elem
3.forEach方法+lambda表达式遍历集合
本质:foreach方法的参数是一个函数式接口Consumer,可以将其表示为lambda表达式;forEach会对集合做遍历,每次赋值给String s,函数体对s进行操作(例如sout)

注意最后一种简化方法
ArrayList和LinkList
其实就是顺序表和链表的实现 性质完全可以背板 功能直接查表
HashSet

hashset 基于数组(哈希表)+链表(拉链法处理冲突)+红黑树(JDK8后拉链法的链表改进成红黑树:链表长度超过8,数组长度超过64)

如果想让hashset将两个内容一样的不同对象视作相同对象(只保存一份),(默认这两份是都会保存的,因为本质上是两个不同对象,hashcode不同且地址上来看不euqal),需要重写类的hashcode的方法和equals方法;公式化操作:alt+insert,选equals()和hashcode()
LinkedHashSet
有序
在hashset的基础上,用一个双链表存储位置信息
TreeSet
可排序
基于红黑树实现排序 默认升序从小到大
自定义对象无法排序 需要自定义排序规则

如果类本身实现了Comparable接口,TreeSet自带比较器,默认使用自带的
可变参数


可变参数外部是任意传入;内部本质是一个数组;
注意两个注意事项,可变参数只能有一个,只能放在参数列表的最后
Collectiongs工具类

Map集合


Map常用方法

Map三种遍历

最好用的:第三中 lambda表达式
map.forEach((k,v)->{//逻辑实现});
Map和Set关系
Set基于Map实现,只不过只使用键,不需要使用值
集合的嵌套
概念:集合的元素是一个集合


浙公网安备 33010602011771号