ArrayList什么情况下不可以使用增强for循环
时间: 2024-03-17 22:41:08 浏览: 81
java新特性之for循环最全的用法总结
在大多数情况下,ArrayList可以使用增强for循环进行遍历。但是,当需要在遍历过程中进行删除或添加操作时,使用增强for循环可能会抛出ConcurrentModificationException异常。
例如,下面的代码演示了在使用增强for循环遍历ArrayList时进行删除操作,导致抛出ConcurrentModificationException异常:
```
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
for (String fruit : list) {
if (fruit.equals("banana")) {
list.remove(fruit); // 会抛出ConcurrentModificationException异常
}
}
```
这是因为,在使用增强for循环遍历ArrayList时,会使用迭代器Iterator来实现,而在进行删除或添加操作时,会改变集合的结构,导致迭代器失效,从而抛出ConcurrentModificationException异常。
因此,在需要在遍历过程中进行添加或删除操作时,建议使用普通for循环或迭代器Iterator来遍历ArrayList。
阅读全文