我有以下代码:
System.out.println(dislist.size());
for (int k = 0; k < 10; k++) {
System.out.println(k + dislist.get(k).first + dislist.get(k).second);
if (!dislist.get(k).first.equals(Nodename)) {
if (dislist.get(k).first.equals(myfirst) ||
dislist.get(k).first.equals(mysecond) ||
dislist.get(k).second.equals(myfirst) ||
dislist.get(k).second.equals(mysecond)) {
dislist.remove(k);
}
}
}
}
问题是:开始时的印刷品清楚地表明
dislist.size()
为10。但是,我得到了一个数组超出范围的异常,告诉我列表的大小不超过6。
是的,在此之前,我将新对象添加到列表中。
我想循环何时开始还没有完成。
只有在列表中确实有10个对象时,有没有办法强制Java(在同一方法内)启动循环?
最佳答案
Iterator<YourClass> iter = dislist.iterator();
while (iter.hasNext()) {
YourClass obj = iter.next();
if (/* your expression */) {
iter.remove();
}
}
关于java - Java并发修改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14183070/