我依靠列表迭代器来移动字符列表。这是一个单线程程序,我在 4 种不同的方法中顺序使用 listIterator 对象。每种方法都有相同的设置:
private void myMethod(ArrayList<Integer> input) {
ListIterator<Integer> i = input.listIterator();
while (i.hasNext()) {
Integer in = i.next();
if (in < 10)
i.remove();
else
i.set(in*in); // because its lucky
}
}
使用此模式,在第二个迭代器上将引发以下异常:
java.util.ConcurrentModificationException
但是,查看 javadocs,我在抛出的异常中没有看到此异常,也没有看到完成后关闭迭代器的方法。我是否错误地使用了 listIterator?我必须多次迭代同一个 ArrayList,每次都有条件地删除或改变每个元素。也许有更好的方法来迭代 ArrayList,而 ListIterator 不能最好地解决这个用例。
ibeautiful
慕雪6442864
动漫人物
相关分类