ArrayList

来源:互联网 发布:淘宝上的yizi是正品吗 编辑:程序博客网 时间:2024/06/05 16:11

初始容量:

private static final int DEFAULT_CAPACITY = 10;

容量增长:

int newCapacity = oldCapacity + (oldCapacity >> 1);

每次增长为原来的1.5倍

protected transient int modCount = 0;

modCount 字段表示修改次数
当modCount被其他线程修改后就会与迭代器中记录的modCount对不上,此时迭代器抛出异常,这种机制叫fail-fast机制。

PS
foreach底层也是用的迭代器实现。

注意
集合的remove操作会重新调整index和size,因此不能在for循环里面根据循环的i作为index删除集合元素。

循环删除元素:

List<String> list = new ArrayList<>();Iterator<String> it = list.iterator();while(it.hasNext()){    if(it.next().equals("del")){        it.remove();    }}
原创粉丝点击