迭代时从地图中删除特定条目

时间:2018-12-17 14:08:43

标签: java dictionary

我有一个带有值的映射,然后在该映射上循环并根据当前从循环中检索到的元素删除特定元素。

由于我没有删除循环中当前正在查看的元素,因此无法使用iter.remove();。问题不是重复使用'iter.remove();'因为我没有删除当前循环的元素。

以下是我的问题的一个简单示例:

SortedMap<List<Integer>, Integer> units = new TreeMap<>;
units.put(Arrays.asList(new Integer[] {0,0}), 1);
units.put(Arrays.asList(new Integer[] {0,1}), 2);
units.put(Arrays.asList(new Integer[] {2,1}), 3);
units.put(Arrays.asList(new Integer[] {3,4}), 5);

for (List<Integer> key : units.keySet()) {
    units.remove(Arrays.asList(new Integer[] {2,1}));
}

哪个抛出

java.util.ConcurrentModificationException

这很有意义,我只是不知道如何避免。

0 个答案:

没有答案