ArrayList
是一个其容量能够动态增长的动态数组 它继承了AbstractList
,实现了List
、RandomAccess
, Cloneable
, java.io.Serializable
。
基本的ArrayList
,长于随机访问元素,但是在List
中间插入和移除元素时较慢。同时,ArrayList
的操作不是线程安全的!一般在单线程中才使用ArrayList
,而在多线程中一般使用Vector
或者CopyOnWriteArrayList
。
(内部是数组 , 线程不安全)
ArrayList
有三种遍历方式
迭代器遍历
Iterator<Integer> it = arrayList.iterator();
while(it.hasNext()){
System.out.print(it.next() + " ");
}
- 1
- 2
- 3
- 4
索引值遍历
for(int i = 0; i < arrayList.size(); i++){
System.out.print(arrayList.get(i) + " ");
}
- 1
- 2
- 3
for循环遍历
for(Integer number : arrayList){
System.out.print(number + " ");
}
- 1
- 2
- 3
需要说明的是,遍历ArrayList
时,通过索引值遍历效率最高,for循环遍历次之,迭代器遍历最低。