原文: https://howtodoinjava.com/java-arraylist/

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

ArrayList的层次结构

Java ArrayList类扩展了实现List接口的AbstractList类。 List接口以分层顺序扩展了CollectionIterable接口。

Java `ArrayList`指南 - 图1

ArrayList 层次结构

1. ArrayList特性

ArrayList具有以下特性:

  1. 有序ArrayList中的元素保留其顺序,默认情况下是其添加到列表的顺序。
  2. 基于索引 – 可以使用索引位置随机访问元素。 索引以'0'开头。
  3. 动态调整大小 – 当需要添加的元素数量超过当前大小时,ArrayList动态增长。
  4. 不同步 – 默认情况下,ArrayList不同步。 程序员需要适本地使用synchronized关键字,或简单地使用Vector类。
  5. 允许重复 – 我们可以在ArrayList中添加重复元素。 不能成组放置。

2. ArrayList的内部工作

ArrayList类是围绕后备数组实现的。 从arraylist添加或删除的元素实际上是在此后备数组中修改的。 所有arraylist方法都访问此数组并获取/设置数组中的元素。

ArrayList基本上可以看作是 Java 中可调整大小的数组实现。

  1. public class ArrayList<E> extends AbstractList<E>
  2. implements List<E>, RandomAccess,
  3. Cloneable, java.io.Serializable
  4. {
  5. transient Object[] elementData; //backing array
  6. private int size; //array or list size
  7. //more code
  8. }

3. ArrayList示例

3.1 创建ArrayList

通常,我们将创建一个空列表并向其中添加元素。 或者,我们将使用另一个现有集合创建一个arraylist

  1. //Empty arraylist
  2. List<String> names = new ArrayList<>();
  3. //Arraylist initialized with another collection
  4. List<Integer> numbers = new ArrayList<>(Arrays.asList(1,2,3,4,5));

3.2 添加和删除元素

使用add()set()remove()方法添加或更新列表中的元素。

  1. //Create arraylist
  2. List<String> names = new ArrayList<>();
  3. names.add("lokesh"); //[lokesh]
  4. names.add("alex"); //[lokesh, alex]
  5. names.set(1, "brian"); //[lokesh, brian]
  6. names.remove(1); //[lokesh]

3.2 迭代

使用iterator()listIterator()获取迭代器实例的引用。 该迭代器可用于迭代arraylist中的元素。

  1. ArrayList<Integer> digits = new ArrayList<>(Arrays.asList(1,2,3,4,5,6));
  2. Iterator<Integer> iterator = digits.iterator();
  3. while(iterator.hasNext()) {
  4. System.out.println(iterator.next());
  5. }

程序输出。

1
2
3
4
5
6

4. ArrayList方法

ArrayList add()方法示例

ArrayList addAll()方法示例

ArrayList clear()方法示例

ArrayList clone() – 如何克隆ArrayList

ArrayList contains()方法示例

ArrayList sureCapacity()方法示例

ArrayList forEach()方法示例

ArrayList get()方法示例

ArrayList indexOf()方法示例

ArrayList lastIndexOf()方法示例

ArrayList listIterator()方法示例

ArrayList remove()方法示例

ArrayList removeAll()方法示例

ArrayList keepAll()方法示例

ArrayList replaceAll()方法示例

ArrayList removeIf()方法示例

ArrayList sort()方法示例

ArrayList spliterator()方法示例

ArrayList subList()方法示例

ArrayList toArray()方法示例

5. Java ArrayList示例

5.1 创建ArrayList

初始化ArrayList

迭代ArrayList

5.2 添加元素并删除元素

ArrayList的特定索引处添加元素

ArrayList中删除元素

将多个项目添加到ArrayList

5.3 排序ArrayList

ArrayList排序

使用比较器和可比较对象的ArrayList排序

ArrayList分组排序 - 多个比较器示例

使用Collections.sort())方法对ArrayList排序的对象

5.4 获取/搜索

获取ArrayList的子列表

查找ArrayList中元素的最后一个索引

获取ArrayList中元素的索引

ArrayList中获取元素

检查 ArrayList 中是否存在元素

6. Java ArrayList上的其他教程

比较两个ArrayList

同步ArrayList

交换ArrayList

序列化ArrayList

连接两个ArrayList

清空ArrayList

检查ArrayList是否为空

替换ArrayList中现有元素的值

删除ArrayList中的重复元素

7. 转换

LinkedList转换为ArrayList

将向量转换为ArrayList

ArrayList转换为字符串数组

将数组转换为ArrayList

HashSet转换为ArrayList

8. 差异

ArrayList与向量

ArrayListLinkedList

参考文献:

ArrayList Java 文档