迭代HashMap

时间:2016-05-31 11:41:10

标签: java hashmap

我正在阅读迭代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)

0 个答案:

没有答案