增强for循环用于简洁遍历数组或Iterable集合,隐藏索引与迭代器细节;但不可修改集合结构、无法获取索引,适用于只读遍历场景。
Java中的增强for循环(也叫for-each循环)是用来遍历数组或实现了Iterable接口的集合(如ArrayList、HashSet、HashMap的键或值等)的简洁写法。它隐藏了索引管理和迭代器细节,让代码更清晰、不易出错。
语法格式如下:
for (元素类型 变量名 : 要遍历的数组或集合) {
// 使用变量名处理当前元素
}
注意几点:
remove()或add()),否则会抛ConcurrentModificationException
适合只读遍历、逻辑简单、关注元素本身而非位置的情况:
for (String s : list) { System.out.println(s); }
int sum = 0;
for (int n : numbers) sum += n;
for (User u : users) { if (u.isActive()) { found = u; break; } }
for (String key : map.keySet()) { ... }
for (Integer val : map.values()) { ... }不是所有场景都适合用增强for:
Iterator并调用iterator.remove()
for (int i = 0; i
break/continue,但逻辑复杂时可读性下降几个容易忽略但关键的细节:
NullPointerException,使用前建议判空:if (list != null && !list.isEmpty()) { for (...) { ... } }
iterator()实现Iterable接口并提供iterator()方法基本上就这些。增强for循环不是万能的,但它是Java里提升遍历代码可读性和安全性的常用利器——用对地方,事半功倍。