ArrayList
类扩展了AbstractList
类并实现了List
接口。ArrayList
类支持可根据需要自动增长的动态数组。
标准Java数组具有固定长度。创建数组后,它们无法增长或缩小,必须事先知道数组将包含多少元素。
使用初始大小创建数组列表。超过初始大小时,将自动扩大集合。删除对象后,数组会缩小。
以下是ArrayList
类提供的构造函数列表 -
编号 | 构造函数 | 描述 |
---|---|---|
1 | ArrayList() |
此构造函数构建一个空数组列表。 |
2 | ArrayList(Collection c) |
此构造函数构建一个数组列表,该列表使用集合c 的元素进行初始化。 |
3 | ArrayList(int capacity) |
此构造函数构建具有指定初始容量的数组列表。容量是用于存储元素的基础数组的大小。当元素添加到数组列表时,容量会自动增加。 |
除了从父类继承的方法之外,ArrayList
还定义了以下方法 -
编号 | 方法 | 描述 |
---|---|---|
1 | void add(int index, Object element) |
将指定元素插入此列表中的指定位置索引。如果指定的索引超出范围(index < 0 或 index> size() ),则抛出IndexOutOfBoundsException 异常。 |
2 | boolean add(Object o) |
将指定的元素追加到此列表的末尾。 |
3 | boolean addAll(Collection c) |
将指定集合中的所有元素按指定集合的迭代器返回的顺序附加到此列表的末尾。如果指定的集合为null ,则抛出NullPointerException 异常。 |
4 | boolean addAll(int index, Collection c) |
从指定位置开始,将指定集合中的所有元素插入此列表。如果指定的集合为null ,则抛出NullPointerException 异常。 |
5 | void clear() |
从此列表中删除所有元素。 |
6 | Object clone() |
返回此ArrayList 的浅表副本。 |
7 | boolean contains(Object o) |
如果此列表包含指定的元素,则返回true 。当且仅当此列表包含至少一个元素e 时,o == null?e == null:o.equals(e) 才返回true 。 |
8 | void ensureCapacity(int minCapacity) |
如有必要,增加此ArrayList 实例的容量,以确保它至少可以容纳由minimum 参数指定的元素数。 |
9 | Object get(int index) |
返回此列表中指定位置的元素。如果指定的索引超出范围(index<0 或者 index> = size() ),则抛出IndexOutOfBoundsException 异常。 |
10 | int indexOf(Object o) |
返回指定元素第一次出现的列表中的索引,如果ArrayList 不包含此元素,则返回-1 。 |
11 | int lastIndexOf(Object o) |
返回指定元素最后一次出现的列表中的索引,如果列表不包含此元素,则返回-1 。 |
12 | Object remove(int index) |
删除此列表中指定位置的元素。如果索引out 是范围(index<0 或者 index> = size() ),则抛出IndexOutOfBoundsException 异常。 |
13 | protected void removeRange(int fromIndex, int toIndex) |
从此List 中删除索引介于fromIndex (包含)到toIndex (不包含)之间的所有元素。 |
14 | Object set(int index, Object element) |
用指定的元素替换此列表中指定位置的元素。如果指定的索引超出范围(index<0 或者 index> = size() ),则抛出IndexOutOfBoundsException 异常。 |
15 | int size() |
返回此列表中的元素数量。 |
16 | Object[] toArray() |
以正确的顺序返回包含此列表中所有元素的数组。如果指定的数组为null ,则抛出NullPointerException 异常。 |
17 | Object[] toArray(Object[] a) |
以正确的顺序返回包含此列表中所有元素的数组; 返回数组的运行时类型是指定数组的运行时类型。 |
18 | void trimToSize() |
将此ArrayList 实例的容量调整为列表的当前大小。 |
示例
以下程序演示了如何使用ArrayList
的几种方法 -
import java.util.*;
/* 文件 : RunEncap.java */
public class RunEncap {
public static void main(String args[]) {
// create an array list
ArrayList al = new ArrayList();
System.out.println("Initial size of al: " + al.size());
// add elements to the array list
al.add("C");
al.add("A");
al.add("E");
al.add("B");
al.add("D");
al.add("F");
al.add(1, "A2");
System.out.println("当前 ArrayList 的大小是: " + al.size());
// 显示 ArrayList 的内容
System.out.println(": " + al);
// 从 ArrayList 中删除元素
al.remove("F");
al.remove(2);
System.out.println("删除元素之后的大小为: " + al.size());
System.out.println("ArrayList的内容如下: " + al);
}
}
执行上面示例代码,得到以下结果 -
Initial size of al: 0
当前 ArrayList 的大小是: 7
: [C, A2, A, E, B, D, F]
删除元素之后的大小为: 5
ArrayList的内容如下: [C, A2, E, B, D]