《Java高级编程:从原理到实战 - 进阶知识篇五》
Java遍历集合的五种常用方法
在Java中,遍历集合有多种方式,下面介绍五种最常用的方法,并分析它们的特点和适用场景。
一. 普通for循环(适用于List)
特点:
-  通过索引访问元素 
-  只适用于实现了RandomAccess接口的List(如ArrayList) 
-  不适用于Set和Map 
List<String> list = Arrays.asList("A", "B", "C");
for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));
}二. 增强for循环(foreach)
特点:
-  语法简洁 
-  适用于所有Collection类型 
-  底层使用迭代器实现 
-  遍历过程中不能修改集合 
List<String> list = Arrays.asList("A", "B", "C");
for (String item : list) {System.out.println(item);
}// 同样适用于Set
Set<String> set = new HashSet<>(list);
for (String item : set) {System.out.println(item);
}三. 迭代器(Iterator)
特点:
-  最原始的遍历方式 
-  可以在遍历时安全删除元素 
-  适用于所有Collection类型 
List<String> list = Arrays.asList("A", "B", "C");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {String item = iterator.next();System.out.println(item);// 安全删除当前元素// iterator.remove();
}四. Java 8 forEach + Lambda
特点:
-  代码简洁 
-  支持Lambda表达式 
-  不能使用break/continue控制流程 
List<String> list = Arrays.asList("A", "B", "C");
list.forEach(item -> System.out.println(item));// 或者使用方法引用
list.forEach(System.out::println);// Map的遍历
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.forEach((k, v) -> System.out.println(k + ":" + v));五. Stream API(Java 8+)
特点:
-  支持函数式编程 
-  可以进行链式操作(过滤、映射等) 
-  并行流提高性能 
List<String> list = Arrays.asList("A", "B", "C");
list.stream().forEach(System.out::println);// 并行处理
list.parallelStream().forEach(System.out::println);// 带过滤条件的遍历
list.stream().filter(s -> s.startsWith("A")).forEach(System.out::println);