ArrayList的了解
2021-08-21 17:51:53 0 举报
ArrayList的了解
作者其他创作
大纲/内容
扩容
内部新建一个数组,并返回该数组,调用的System.arraycopy()
1、先扩容为原数组的1.5倍
dest:目标数组;
原因
length:要复制的数组元素的数量
特点
触发System.arraycopy(),数组的拷贝
2、如果不满足大小,扩容为设置的大小
初始化
Fail-Fast
get、set效率高
解决
srcPos:源数组中的起始位置
这个api,需要自己设置原数组和目标数组,以及复制原数组的起点,目标数组的起点,以及复制原数组的个数
src:源数组
1、遍历时候如果改变就会修改modCount,2、因为迭代器Iterator在调用hashNext()/next(),会提前检查modCount变量是否是期望的。
destPos:目标数组中的起始位置
现象
ArrayList
默认长度10,可动态通过构造配置
1、modCount涉及的地方加锁2、使用CopyOnWriteArrayList
3、如果不满足大小,设置 IMAX_VALUE
线程A通过Iterator遍历,线程B改变了集合结构出现ConcurrentModificationException
0 条评论
回复 删除
下一页