List接口继承了Collection接口,它是一个允许重复数据的有序集合,并且也可以通过位置找到元素,也可以找到元素所在的位置
1.1实现类ArrayList
在Java中,标准数组是定长的,在数组创建之后,不能被加长或缩短,也就意味着事先必须知道数组要容纳多少元素,不太灵活,为了解决这个问题,类集框架定义了ArrayList,此类支持随需要而增长动态数组,本质上是引用的一个变长的数组,数组列表是以一个原始大小创建的,当超过它的大小时,数组列表自动增大,当对象删掉后,自动缩小,也可以通过索引找到元素,也可以通过索引调整位置,下面用一段代码演示用法
public static void main(String[] args) {
Collection c1=new ArrayList();
for (int i=0;i<5;i++){
c1.add(new Integer(i));
}
System.out.println("ci"+c1);
Collection c2=new ArrayList();
//将集合c1里的所有数据添加到c2里
c2.addAll(c1);
//将集合c1当作一个元素添加到c2里
c2.add(c1);
c2.remove(new Integer(3));
c2.add("hehe");
System.out.println("c2"+c2);
}
结果显示:
ci[0, 1, 2, 3, 4]
c2[0, 1, 2, 4, [0, 1, 2, 3, 4], hehe]
注意:add是添加一个元素,因此c2.add(c1);将c1当成一个整体[0, 1, 2, 3, 4]添加到了c2里了
addAll是添加集合里的所有元素,因此当c2.addAll(c1);是吧c1里的元素添加到c2里了