我正在阅读迭代HashMap以从中删除条目的最佳方法是使用迭代器。我做到了但是,我仍然在" i.remove上得到一个ConcurrentModificationException。"有谁知道为什么?
Iterator<Map.Entry<Integer, ArrayList<JLabel>>> i = tab.getReport().getRows().entrySet().iterator();
while (i.hasNext()) {
Entry e = i.next();
int keyId = (int) e.getKey();
if (toChange.contains(keyId)) {
tab.getReport().getRows().put(keyId - 1, tab.getReport().getRows().get(keyId));
tab.getReport().getRows().get(keyId - 1).get(0).setText(Integer.toString(keyId - 1));
i.remove();
}
}
Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.remove(HashMap.java:1443)