ArrayList
底层实现
使用Object[] 动态数组进行存储
特性
- 支持存储null值
- 非线程安全
- 支持快速访问
初始化方法
- 无参--返回一个空的列表(DEFAULTCAPACITY_EMPTY_ELEMENTDATA)
- 指定初始容量: new ArrayList(20);
- 指定集合 new ArrayList(collection);
扩容
- 如果是使用无参构造方法进行初始化的,当添加第一个元素时,扩容成10;
- 当下一次超出容量时,扩容为上次容量的1.5倍
- 批量添加会出发多次扩容(10->25->...)
遍历方式
- for-each(本质上是使用迭代器)
java
for(String s : list)
- for循环
- 迭代器(单线程下遍历时修改不会引起异常)
java
Iterator(String) it = list.iterator();
while(it.hasnext()) {
print(it.next);
}