为什么我得到这个例外?
我是java和stackoverflow的新手
ArrayList<A> a = new ArrayList<A>();
ArrayList<B> b = new ArrayList<B>();
a.add(new A("A"));
a.add(new A("B"));
a.add(new A("C"));
b.add(new B(new A("A"), "a"));
b.add(new B(new A("B"), "b"));
b.add(new B(new A("C"), "c"));
System.out.println(a);
System.out.println(b);
bIterator = b.iterator();
while(bIterator.hasNext()) {
b.add(new B(bIterator.next(), "a"));
}
错误
Exception in thread "main" java.util.ConcurrentModificationException
答案 0 :(得分:5)
您得到此异常,因为您遍历列表并同时修改它。
答案 1 :(得分:1)
下面的代码是创建问题,因为你正在迭代 在列表上并同时修改它。
while(bIterator.hasNext()) {
b.add(new B(bIterator.next(), "a"));
}
答案 2 :(得分:0)
while(bIterator.hasNext()) {
b.add(new B(bIterator.next(), "a"));
}
如果仔细查看上面的行,则会迭代该列表并尝试同时添加更多元素。
答案 3 :(得分:0)
抛出异常是因为您在迭代时修改了ArrayList。 但是,有一些List实现支持此功能,例如CopyOnWriteArrayList。