java如何遍历容器
遍历List集合
使用for循环或增强for循环遍历List:
List<String> list = Arrays.asList("A", "B", "C");
// 传统for循环
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
// 增强for循环
for (String item : list) {
System.out.println(item);
}
使用Iterator或ListIterator(支持双向遍历):

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
// ListIterator示例
ListIterator<String> listIterator = list.listIterator();
while (listIterator.hasNext()) {
System.out.println(listIterator.next());
}
遍历Set集合
Set的遍历方式与List类似,但无法通过索引访问:
Set<String> set = new HashSet<>(Arrays.asList("X", "Y", "Z"));
// 增强for循环
for (String item : set) {
System.out.println(item);
}
// 使用Iterator
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
遍历Map集合
通过keySet()、entrySet()或values()遍历Map:

Map<String, Integer> map = new HashMap<>();
map.put("Key1", 1);
map.put("Key2", 2);
// 遍历Key
for (String key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
// 遍历Entry(推荐,效率更高)
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
// 仅遍历Value
for (Integer value : map.values()) {
System.out.println(value);
}
使用Java 8 Stream API
通过forEach和Stream流式操作遍历:
List<String> list = Arrays.asList("A", "B", "C");
list.forEach(item -> System.out.println(item));
// 使用方法引用
list.forEach(System.out::println);
// Map的Stream遍历
map.entrySet().stream()
.forEach(entry -> System.out.println(entry.getKey()));
遍历数组
数组可通过传统for循环或增强for循环遍历:
String[] array = {"A", "B", "C"};
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
for (String item : array) {
System.out.println(item);
}
注意事项
- 使用
Iterator时,避免在遍历过程中直接修改集合(如删除元素),应使用Iterator.remove()方法。 ConcurrentModificationException异常常因遍历时直接修改集合导致。- Java 8的
forEach对性能敏感的场景可能不如传统循环高效。






