集合知识补充

介绍

1.都是collection类下,4大:mao,set,list,queue。
arry是动态的。其实和int[]a=new int[100]差不多,都是基于下表。
alt text
alt text
alt text
alt text
数组和列表的主要区别在于空间地址是否连续
alt text
arrylist有扩容,是可以不断扩大的
alt text

快速失败与安全失败

快速失败
迭代循环的modcount就算用于快速失败的检查机制。
安全失败:
alt text
alt text

排序

类中有一个继承Object的函数,comporeTo。大于返回正值。。。
alt text
Comparator 定制排序:
Collection.sort加2个参数,一个是数组,一个是comparator的new然后再其中更改排序规则
alt text
comporeable
接口
alt text
重写方法:
alt text
第二种
alt text

无序性和不可重复性

alt text

1.FIFO:是指先进先出
2.有序
都是不重复且线程不安全的
alt text
queue单向队列,dqueue双向队列
alt text

alt text
alt text

Map

alt text

hashmap扩容后,原来元素的位置会改变。
alt text
alt text

alt text
主要由于操作的原子性无法被保证。查询确定和执行操作2部分被分隔了
alt text
alt text

ConcurrentHashMap
分割分段减少竞争
alt text
alt text
锁粒度更小,hashtable是全表锁,适合低并发情景
是sy加cas+node(分节点)来保证上锁的线程安全
alt text

二义性:所以不建议存储空值
alt text
为了保证线程的安全不允许存入空值
alt text
阿里巴巴开发手册
alt text
alt text
alt text
去重
alt text
alt text

posted @ 2025-03-06 13:38    阅读(13)  评论(0)    收藏  举报