在Java中如何使用for循环遍历集合_Java循环技巧分享

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

在Java中,使用for循环遍历集合是日常开发中最常见的操作之一。为了提高代码的可读性和效率,掌握不同的遍历方式非常有必要。下面介绍几种常用的for循环遍历集合的方法。

1. 普通for循环结合索引遍历

这种方式适用于List及其子类(

如ArrayList、LinkedList),因为它们支持通过索引访问元素。

示例代码:

List list = Arrays.asList("apple", "banana", "orange");
for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i));
}
注意:频繁调用size()方法可能影响性能,建议提前缓存list.size()的值,尤其是在大数据量时。

2. 增强for循环(foreach)

这是最简洁、最常用的遍历方式,适用于所有实现了Iterable接口的集合,如List、Set、Map等。

示例代码:

List list = Arrays.asList("apple", "banana", "orange");
for (String item : list) {
    System.out.println(item);
}
增强for循环底层使用Iterator实现,避免了手动管理索引,代码更安全、易读。

3. 使用Iterator遍历

当需要在遍历过程中删除元素时,推荐使用Iterator,避免并发修改异常(ConcurrentModificationException)。

示例代码:

List 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(); // 安全删除
    }
}
Iterator提供了hasNext()和next()方法,适合条件性遍历或删除场景。

4. for循环遍历Map集合

Map不能直接使用增强for循环,但可以通过entrySet()、keySet()或values()来遍历。

常用方式示例:

Map 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);
}
推荐使用entrySet()方式,如果需要同时获取键和值,效率更高。

基本上就这些。选择合适的遍历方式能让代码更清晰、性能更优。根据集合类型和操作需求灵活选用即可。