Collection是一个接口类,其继承了java迭代接口Iterable。
Collection接口有两个主要的子接口List和Set,注意Map不是Collection的子接口。
Collection中可以存储的元素间无序,可以重复组各 自独立的元素, 即其内的每个位置仅持有一个元素,同时允许有多个null元素对象。
Collection接口是List接口的父接口。
List接口中的元素的特点为:
List中存储的元素实现类排序,而且可以重复的存储相关元素。
a. 如果在初始化ArrayList的时候没有指定初始化长度的话,默认的长度为10。
b. ArrayList在增加新元素如果超过了原始的容量的话,ArrayList扩ensureCapacity的方案为“原始容量*3/2+1”。
c. ArrayList是线程不安全的,在多线程的情况下不要使用。
如果一定在多线程使用List的,您可以使用Vector,因为Vector和ArrayList基本一致,区别在于Vector中的绝大部分方法都使用了同步关键字修饰,这样在多线程的情况下不会出现并发错误,还有就是它们的扩容方案不同,ArrayList是通过原始容量*3/2+1,而Vector是允许设置默认的增长长度,Vector的默认扩容方式为原来的2倍。切记Vector是ArrayList的多线程的一个替代品。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ArrayListTraversal {
public void arrayListTraversal(List<Integer> lists){
/* 第一种遍历方式 */
System.out.print("for循环的遍历方式:");
for (int i = 0; i < lists.size(); i++) {
System.out.print(lists.get(i));
}
System.out.println();
/* 第二种遍历方式 */
System.out.print("foreach的遍历方式:");
for (Integer list : lists) {
System.out.print(list);
}
System.out.println();
/* 第三种遍历方式 */
System.out.print("Iterator的遍历方式:");
for (Iterator<Integer> list = lists.iterator(); list.hasNext();) {
System.out.print(list.next());
}
}
public static void main(String[] args) {
List<Integer> lists = new ArrayList<Integer>();
/* 添加元素 */
for (int i = 0; i < 10; i++) {
lists.add(i);
}
new ArrayListTraversal().arrayListTraversal(lists);
}
}