Java API 中提供的实现List 接口的容器类有ArrayList、LinkedList 等,它们是有序的容器类。
- ArrayList 类实现一个可变大小的数组,可以像链表一样被访问。它以数组的方式实现,允许快速随机存取。它允许包含所有元素,包括null 元素。每个ArrayList 类实例都有一个容量(capacity),即存储元素的数组大小,这个容量可以随着不断添加新元素而自动增加。
- ArrayList 类常用的构造方法有3 种重载形式,具体如下:
(1)构造一个初始容量为10 的空列表。
public ArrayList()
(2)构造一个指定初始容量的空列表。
public ArrayList(int initialCapacity)
(3)构造一个包含指定集合元素的列表,这些元素是按照该集合的迭代器返回它们的顺序排列。
public ArrayList(Collection c)
测试代码如下:
package test;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList list = new ArrayList();//创建初始容量为10的空列表
list.add("Cat");
list.add("dog");
list.add("pig");
list.add("sheep");
list.add("pig");
System.out.print("list中所有的元素:");
Iterator iterator = list.iterator();
while(iterator.hasNext()){
System.out.print(iterator.next()+" ");
}
System.out.println();
System.out.println("返回替换集合中索引是1的元素"+list.set(1, "mouse"));
//替换指定索引处的元素
iterator = list.iterator();
System.out.println("替换后集合中的元素");
while(iterator.hasNext()){
System.out.print(iterator.next()+" ");
}
System.out.println();
System.out.println("获取集合中索引是2的元素"+list.get(2));
System.out.println("集合中第一次出现pig的索引"+list.indexOf("pig"));
System.out.println("集合中最后一次出现dog的索引"+list.lastIndexOf("dog"));
List I = list.subList(1, 4);//取左闭右开
iterator = I.iterator();
System.out.println("I集合1-4的元素");
while(iterator.hasNext()){
System.out.print(iterator.next()+" ");
}
}
}
运行结果:
list中所有的元素:Cat dog pig sheep pig
返回替换集合中索引是1的元素dog
替换后集合中的元素
Cat mouse pig sheep pig
获取集合中索引是2的元素pig
集合中第一次出现pig的索引2
集合中最后一次出现dog的索引-1
I集合1-4的元素
mouse pig sheep