java里如何迭代
迭代方法概述
在Java中,迭代可以通过多种方式实现,包括传统的for循环、增强for循环、Iterator接口以及Stream API等。每种方法适用于不同的场景和数据结构。
使用传统for循环
传统for循环适用于数组或已知长度的集合。通过索引逐个访问元素。
int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
使用增强for循环
增强for循环(for-each)语法简洁,适用于数组或实现了Iterable接口的集合(如List、Set)。

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
for (String name : names) {
System.out.println(name);
}
使用Iterator接口
Iterator提供了一种统一的方式来遍历集合,支持在迭代过程中移除元素。
List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3));
Iterator<Integer> iterator = numbers.iterator();
while (iterator.hasNext()) {
Integer num = iterator.next();
if (num % 2 == 0) {
iterator.remove(); // 移除偶数
}
}
使用ListIterator
ListIterator是Iterator的扩展,支持双向遍历和修改操作,仅适用于List。

List<String> items = new ArrayList<>(Arrays.asList("A", "B", "C"));
ListIterator<String> listIterator = items.listIterator();
while (listIterator.hasNext()) {
String item = listIterator.next();
listIterator.set(item + "-modified"); // 修改当前元素
}
使用Stream API(Java 8+)
Stream提供函数式风格的迭代,支持链式操作如过滤、映射等。
List<String> words = Arrays.asList("apple", "banana", "cherry");
words.stream()
.filter(word -> word.startsWith("a"))
.forEach(System.out::println);
使用forEach方法
集合类提供了forEach方法,可直接传入Lambda表达式或方法引用。
List<Integer> nums = Arrays.asList(1, 2, 3);
nums.forEach(num -> System.out.println(num * 2));
// 或使用方法引用
nums.forEach(System.out::println);
选择迭代方式的建议
- 数组或简单遍历:优先使用增强
for循环。 - 需要修改集合:使用
Iterator或ListIterator。 - 复杂数据处理:选择
Stream API进行链式操作。 - 并行处理:
Stream.parallel()可简化并行迭代。






