普通for循环适用于List类集合,通过索引访问元素,建议缓存size()值以提升性能;2. 增强for循环(foreach)简洁安全,底层基于Iterator,适用于所有Iterable集合;3. 使用Iterator遍历可在过程中安全删除元素,避免并发修改异常;4. 遍历Map推荐使用entrySet()获取键值对,keySet()和values()分别用于仅遍历键或值场景。根据集合类型和操作需求选择合适方式可提升代码可读性与性能。

在Java中,使用for循环遍历集合是日常开发中最常见的操作之一。为了提高代码的可读性和效率,掌握不同的遍历方式非常有必要。下面介绍几种常用的for循环遍历集合的方法。
1. 普通for循环结合索引遍历
这种方式适用于List及其子类(如ArrayList、LinkedList),因为它们支持通过索引访问元素。示例代码:
立即学习“Java免费学习笔记(深入)”;
List注意:频繁调用size()方法可能影响性能,建议提前缓存list.size()的值,尤其是在大数据量时。list = Arrays.asList("apple", "banana", "orange"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }
2. 增强for循环(foreach)
这是最简洁、最常用的遍历方式,适用于所有实现了Iterable接口的集合,如List、Set、Map等。示例代码:
立即学习“Java免费学习笔记(深入)”;
List增强for循环底层使用Iterator实现,避免了手动管理索引,代码更安全、易读。list = Arrays.asList("apple", "banana", "orange"); for (String item : list) { System.out.println(item); }
3. 使用Iterator遍历
当需要在遍历过程中删除元素时,推荐使用Iterator,避免并发修改异常(ConcurrentModificationException)。示例代码:
立即学习“Java免费学习笔记(深入)”;
ListIterator提供了hasNext()和next()方法,适合条件性遍历或删除场景。list = new ArrayList<>(Arrays.asList("apple", "banana", "orange")); Iterator it = list.iterator(); while (it.hasNext()) { String item = it.next(); if ("banana".equals(item)) { it.remove(); // 安全删除 } }
4. for循环遍历Map集合
Map不能直接使用增强for循环,但可以通过entrySet()、keySet()或values()来遍历。常用方式示例:
Map推荐使用entrySet()方式,如果需要同时获取键和值,效率更高。map = new HashMap<>(); map.put("语文", 85); map.put("数学", 92); map.put("英语", 78); // 遍历键值对 for (Map.Entry entry : map.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } // 只遍历键 for (String key : map.keySet()) { System.out.println(key); } // 只遍历值 for (Integer value : map.values()) { System.out.println(value); }
基本上就这些。选择合适的遍历方式能让代码更清晰、性能更优。根据集合类型和操作需求灵活选用即可。










