1、使用数组的局限性
要存放多个对象可以用数组,但是使用数组有局限性,如声明长度为10的数组,没有使用完,就浪费了,长度超过10,又放不下,如下面代码示例:
private static void useArraySaveData() {
User arrBus[]=new User[10];
arrBus[0]=new User("小强");
System.out.println(arrBus[0]);
arrBus[15]=new User("小林");
System.out.println(arrBus[15]);
}
2、使用集合ArrayList存放对象
List是接口类,ArrayList是List的实现类,如下,集合容器的容量,会随着对象的增加而增加,不用担心数组越界的问题。
private static void useListSaveData() {
List bus=new ArrayList();
bus.add(new User("小强"));
System.out.println(bus.size());
bus.add(new User("小林"));
System.out.println(bus.size());
}
我们可以查看集合add方法的源码
ensureCapacityInternal 用来检查是否首次向list中添加数据,并给定初始的容量大小(10)
elementData 向List中添加数据,并让size在原有的基础上+1
public boolean add(E e) {
ensureCapacityInternal(size + 1); // Increments modCount!!
elementData[size++] = e;
return true;
}