Java 中的 ArrayList表示可调整大小的对象列表。 我们可以在此列表中添加,删除,查找,排序和替换元素。 ArrayList是 Java 的集合框架的一部分,并实现 Java 的List接口。
ArrayList类的层次结构
Java ArrayList类扩展了实现List接口的AbstractList类。 List接口以分层顺序扩展了Collection和Iterable接口。

ArrayList 层次结构
1. ArrayList特性
ArrayList具有以下特性:
- 有序 –
ArrayList中的元素保留其顺序,默认情况下是其添加到列表的顺序。 - 基于索引 – 可以使用索引位置随机访问元素。 索引以
'0'开头。 - 动态调整大小 – 当需要添加的元素数量超过当前大小时,
ArrayList动态增长。 - 不同步 – 默认情况下,
ArrayList不同步。 程序员需要适本地使用synchronized关键字,或简单地使用Vector类。 - 允许重复 – 我们可以在
ArrayList中添加重复元素。 不能成组放置。
2. ArrayList的内部工作
ArrayList类是围绕后备数组实现的。 从arraylist添加或删除的元素实际上是在此后备数组中修改的。 所有arraylist方法都访问此数组并获取/设置数组中的元素。
ArrayList基本上可以看作是 Java 中可调整大小的数组实现。
public class ArrayList<E> extends AbstractList<E>implements List<E>, RandomAccess,Cloneable, java.io.Serializable{transient Object[] elementData; //backing arrayprivate int size; //array or list size//more code}
3. ArrayList示例
3.1 创建ArrayList
通常,我们将创建一个空列表并向其中添加元素。 或者,我们将使用另一个现有集合创建一个arraylist。
//Empty arraylistList<String> names = new ArrayList<>();//Arraylist initialized with another collectionList<Integer> numbers = new ArrayList<>(Arrays.asList(1,2,3,4,5));
3.2 添加和删除元素
使用add(),set()和remove()方法添加或更新列表中的元素。
//Create arraylistList<String> names = new ArrayList<>();names.add("lokesh"); //[lokesh]names.add("alex"); //[lokesh, alex]names.set(1, "brian"); //[lokesh, brian]names.remove(1); //[lokesh]
3.2 迭代
使用iterator()或listIterator()获取迭代器实例的引用。 该迭代器可用于迭代arraylist中的元素。
ArrayList<Integer> digits = new ArrayList<>(Arrays.asList(1,2,3,4,5,6));Iterator<Integer> iterator = digits.iterator();while(iterator.hasNext()) {System.out.println(iterator.next());}
程序输出。
1
2
3
4
5
6
4. ArrayList方法
ArrayList clone() – 如何克隆ArrayList
5. Java ArrayList示例
5.1 创建ArrayList
5.2 添加元素并删除元素
5.3 排序ArrayList
使用Collections.sort())方法对ArrayList排序的对象
5.4 获取/搜索
检查 ArrayList 中是否存在元素
6. Java ArrayList上的其他教程
7. 转换
8. 差异
参考文献:
