介绍
1.都是collection类下,4大:mao,set,list,queue。
arry是动态的。其实和int[]a=new int[100]差不多,都是基于下表。
数组和列表的主要区别在于空间地址是否连续
arrylist有扩容,是可以不断扩大的
快速失败与安全失败
快速失败
迭代循环的modcount就算用于快速失败的检查机制。
安全失败:
排序
类中有一个继承Object的函数,comporeTo。大于返回正值。。。
Comparator 定制排序:
Collection.sort加2个参数,一个是数组,一个是comparator的new然后再其中更改排序规则
comporeable
接口
重写方法:
第二种
无序性和不可重复性
1.FIFO:是指先进先出
2.有序
都是不重复且线程不安全的
queue单向队列,dqueue双向队列
Map
hashmap扩容后,原来元素的位置会改变。
主要由于操作的原子性无法被保证。查询确定和执行操作2部分被分隔了
ConcurrentHashMap
分割分段减少竞争
锁粒度更小,hashtable是全表锁,适合低并发情景
是sy加cas+node(分节点)来保证上锁的线程安全
二义性:所以不建议存储空值
为了保证线程的安全不允许存入空值
阿里巴巴开发手册
去重