ArrayList 类
JDK5.0以后这是一个泛型类。
ArrayList>Employee< staff = new ArrayList>Employee<();
构造器:
ArrayList(Collection>? extends E< c)
ArrayList()
ArrayList(int initialCapacity)
方法:
boolean add(E e)
void add(int index, E element)
int size() 相当于数组中的length
remove(int index)
remove(Object o)
ArrayList管理了一个对象数组,如果数组已满,此时再加入元素,ArrayList会自动创建一个更大的数组,并把原来数组的内容复制到新数组中。
如果提前知道要加入多少元素,可以使用ensureCapasity(int)方法。也可以在创建ArrayList时使用ArrayList>Employee< staff = new ArrayList>Employee<(int)。
如果要使ArrayList定容,使用trimToSize()方法
注意ArrayList和c++的vector的不同,后者赋值时是按值操作的。
访问ArrayList的元素:
设置元素:set(int index, E element) (和数组一样,index从0开始编号)
注意不要在ArrayList的已初始化容量小于i时进行set操作。
如
ArrayList>Employee< list = new ArrayList>Employee<(100); // capacity 100, size 0
list.set(0, x); // no element 0 yet
是错误的
获取元素:get(int index)
JDK5新支持的for each循环:
for (Element e : ArrayList) {//...}
一个技巧:
先创建ArrayList并安全地添加元素
ArrayList>X< list = new ArrayList>X<();
while (. . .)
{
x = . . .;
list.add(x);
}
将ArrayList转换为数组,从而方便地读取
X[] a = new X[list.size()];
list.toArray(a);