回复 ConcurrentModificationException 记混的同学,ConcurrentModificationException 异常只会在迭代器状态和元素变更状态不一致的情况下才会发生, 比如使用 iterator.next(); 后 使用集合本身的 remove /add sort 等方法;这份代码并不会出现该异常;
所以不可以 iterator 的变更操作 api 和集合变更操作 api 混合使用就没有问题, 比如:
“`java
Iterator<UnitOfWeight> iterator = arrayList.iterator();
while (iterator.hasNext()) {
if (arrayList.get(0) != null) {
arrayList.remove(0);
//不会出现异常, 因为不会执行 #next()方法
break;
}
iterator.next();
}
“`
和
“`java
Iterator<UnitOfWeight> iterator = arrayList.iterator();
while (iterator.hasNext()) {
if (arrayList.get(0) != null) {
arrayList.remove(0);
// break;
}
iterator.next();
}
“`
等等