简介
ArrayList 是 Java 中一个常用的集合框架类,用于存储元素的列表。它提供了多种方法来遍历和迭代其元素。
使用 for-each 循环
for-each 循环(也称为增强型 for 循环)是一种简单而简洁的方法来遍历 ArrayList 中的每个元素。它的语法如下:
for (元素类型 变量 : 集合) {
// 代码块
}
示例:
ArrayList<String> names = new ArrayList<>();
names.add("John");
names.add("Mary");
names.add("Bob");
for (String name : names) {
System.out.println(name); // 输出:John、Mary、Bob
}
使用迭代器
迭代器是另一种遍历 ArrayList 中元素的方法。它提供了更多的控制和灵活性。要获取迭代器,可以使用以下方法:
Iterator<元素类型> iterator = 集合.iterator();
然后,可以使用以下方法遍历迭代器中的元素:
hasNext()
:检查迭代器中是否还有元素。next()
:返回迭代器中的下一个元素。remove()
:从集合中删除当前元素(可选)。
示例:
ArrayList<String> names = new ArrayList<>();
names.add("John");
names.add("Mary");
names.add("Bob");
Iterator<String> iterator = names.iterator();
while (iterator.hasNext()) {
String name = iterator.next();
System.out.println(name); // 输出:John、Mary、Bob
}
使用 lambda 表达式
Java 8 引入了 lambda 表达式,提供了一种更简洁的方式来遍历 ArrayList。lambda 表达式可以与 forEach()
方法结合使用,如下所示:
ArrayList<String> names = new ArrayList<>();
names.add("John");
names.add("Mary");
names.add("Bob");
names.forEach(name -> System.out.println(name)); // 输出:John、Mary、Bob
并发修改
需要注意的是,在遍历 ArrayList 时对其进行修改可能会导致意外行为。例如,在使用 for-each 循环时,如果从 ArrayList 中删除元素,则会抛出 ConcurrentModificationException
异常。要避免此问题,可以使用迭代器或在遍历之前复制 ArrayList。
总结
有几种方法可以在 Java 中循环 ArrayList:for-each 循环、迭代器和 lambda 表达式。选择最合适的方法取决于所需的灵活性、控制和并发修改处理。