增强for循环适用于大多数集合,语法简洁;2. 遍历时需删除元素应使用Iterator避免ConcurrentModificationException;3. List可采用普通for循环访问索引;4. forEach方法支持函数式编程风格,内部基于迭代器实现。

在Java中遍历集合元素有多种方式,根据不同的集合类型和使用场景可以选择最合适的方法。以下是几种常见且实用的遍历方式。
使用增强for循环(foreach)
这是最简洁、最常用的遍历方式,适用于大多数集合类型,如List、Set等。
增强for循环底层会自动调用迭代器,语法清晰易读。
- List
list = Arrays.asList("a", "b", "c"); - for (String item : list) {
- System.out.println(item);
- }
Set集合也可以用同样方式遍历。
立即学习“Java免费学习笔记(深入)”;
使用Iterator迭代器
当需要在遍历过程中删除元素时,推荐使用Iterator,因为它支持安全删除。
- Iterator
it = list.iterator(); - while (it.hasNext()) {
- String item = it.next();
- System.out.println(item);
- if ("b".equals(item)) {
- it.remove(); // 安全删除
- }
- }
直接使用集合的remove方法在遍历中可能抛出ConcurrentModificationException。
使用普通for循环(仅适用于List)
如果集合是List类型,并且需要访问索引,可以使用传统的for循环。
- for (int i = 0; i
- System.out.println(list.get(i));
- }
这种方式对ArrayList效率较高,但对LinkedList建议使用增强for或迭代器,避免频繁get(i)导致性能下降。
使用forEach方法(Java 8+)
Java 8引入了forEach结合Lambda表达式,使代码更简洁。
- list.forEach(item -> System.out.println(item));
- // 或使用方法引用
- list.forEach(System.out::println);
该方式内部基于iterator实现,支持Stream操作链,适合函数式编程风格。
基本上就这些。选择哪种方式主要看是否需要修改集合、是否关注索引、以及代码风格偏好。日常开发中增强for和forEach用得最多,需要删除元素时记得用Iterator。不复杂但容易忽略细节。










