Java ArrayList类
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插入指定的元素。如果指定的索引超出范围(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 满足(onull ? enull : o.equals(e)),则返回true。 |
8 | void ensureCapacity(int minCapacity) 如果需要,增加此ArrayList实例的容量,以确保至少可以容纳由最小容量参数指定的元素数量。 |
9 | Object get(int index) 返回列表中指定位置的元素。如果指定的索引超出范围(index < 0 || index >= size()),则抛出IndexOutOfBoundsException。 |
10 | int indexOf(Object o) 返回此列表中指定元素的第一次出现的索引,如果列表不包含此元素,则返回-1。 |
11 | int lastIndexOf(Object o) 返回列表中指定元素的最后一次出现的索引,如果列表不包含此元素,则返回-1。 |
12 | Object remove(int index) 删除列表中指定位置的元素。如果索引超出范围(index < 0 || index >= size()),则抛出IndexOutOfBoundsException异常。 |
13 | protected void removeRange(int fromIndex, int toIndex) 从此列表中删除所有索引位于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.*;
public class ArrayListDemo {
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("Size of al after additions: " + al.size());
// display the array list
System.out.println("Contents of al: " + al);
// Remove elements from the array list
al.remove("F");
al.remove(2);
System.out.println("Size of al after deletions: " + al.size());
System.out.println("Contents of al: " + al);
}
}
这将产生以下结果−
Initial size of al: 0
Size of al after additions: 7
Contents of al: [C, A2, A, E, B, D, F]
Size of al after deletions: 5
Contents of al: [C, A2, E, B, D]