ArrayList类
ArrayList类封装了一个动态再分配的Object[]数组。每个ArrayList对象有一个capacity。这个capacity表示存储列表中元素的数组的容量。当元素添加到ArrayList时,它的capacity在常量时间内自动增加。 在向一个ArrayList对象添加大量元素的程序中,可使用ensureCapacity方法增加capacity。这可以减少增加重分配的数量。
(1) void ensureCapacity(int minCapacity): 将ArrayList对象容量增加minCapacity 。
(2) void trimToSize(): 整理ArrayList对象容量为列表当前大小。程序可使用这个操作减少ArrayList对象存储空间。
LinkedList类
LinkedList类添加了一些处理列表两端元素的方法。
(1) void addFirst(Object o): 将对象o添加到列表的开头
void addLast(Object o):将对象o添加到列表的结尾
(2) Object getFirst(): 返回列表开头的元素
Object getLast(): 返回列表结尾的元素
(3) Object removeFirst(): 删除并且返回列表开头的元素
Object removeLast():删除并且返回列表结尾的元素
(4) LinkedList(): 构建一个空的链接列表
LinkedList(Collection c): 构建一个链接列表,并且添加集合c的所有元素
迭代的三种不同使用方法
(1)关于迭代器的 remove方法
Iterator it = c.iterator();
if(it.hasNext()){
Cat cat = (Cat)it.next();
System.out.println(cat.name);
//移除当前找到的 指针还指向的,这个元素
//现在是把helloKitty移除了
//it.remove();
Cat cat1 = (Cat)it.next();
it.remove();
//当前这个remove到底移除哪一个元素,是根据当前这个迭代器指向哪个元素来决定的
Object[] objArr = c.toArray();
System.out.println(((Cat)objArr[0]).name);
System.out.println(((Cat)objArr[1]).name);
System.out.println(((Cat)objArr[2]).name);
}
(2)使用迭代器的方式来清空集合
while(it.hasNext()){
Cat c1 = (Cat)it.next();
System.out.println(c1.name);
it.remove();
}
System.out.println(c);
(3)第三种迭代方式
for(int i = 0; i < c.size(); i++){
Object value = ((ArrayList)c).get(i);
System.out.println(value);
}