【发布时间】:2019-09-29 01:14:19
【问题描述】:
我试图通过使用迭代器来获取数组列表中的类似项目。 我一直遇到这个错误:
Exception in thread "main" java.lang.IllegalStateException
at java.util.ArrayList$Itr.remove(ArrayList.java:872)
at com.fryslan.updater.wrappers.MethodDataItem.getIntListSimilarities(MethodDataItem.java:97)
at com.fryslan.updater.wrappers.MethodDataItem.matchAbstractNodes(MethodDataItem.java:67)
at com.fryslan.updater.wrappers.MethodDataItem.equals(MethodDataItem.java:182)
at com.fryslan.updater.Updater.<init>(Updater.java:57)
at com.fryslan.updater.Updater.main(Updater.java:99)
我使用的代码是这样的:
private ArrayList<Integer> getIntListSimilarities(ArrayList<Integer> base, ArrayList<Integer> target) {
ArrayList<Integer> matching = new ArrayList<>();
Iterator baseIterator = base.listIterator();
Iterator targetIterator = target.listIterator();
while (baseIterator.hasNext()) {
while (targetIterator.hasNext()) {
int bv = (int) baseIterator.next();
int tv = (int) targetIterator.next();
if (bv == tv) {
matching.add(bv);
baseIterator.remove();
targetIterator.remove();
baseIterator = base.listIterator();
targetIterator = target.listIterator();
}
}
}
return matching;
}
【问题讨论】: