在迭代HashMap时如何删除另一个项目(不是你持有的项目)

0 java hashmap

我试图通过互联网搜索找到删除另一个项目但不是您正在访问的项目的解决方案.不幸的是,没有办法做到这一点.

这是问题所在.

假设我有一个hashmap,项目<0,10> <1,20> <2,30>

    Map<Integer,Integer> map = new HashMap<Integer, Integer>() ;
    Iterator<Map.Entry<Integer, Integer> >entries = map.entrySet().iterator();

    while (entries.hasNext()) {
        Entry<Integer, Integer> entry = entries.next();
        int temp = entry.getValue();
        if (temp==0){
            map.remove(2);  //2 is the key of 3th item
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后问题就出现了.真的很感激这些建议.

JB *_*zet 5

两次通过:

  1. 遍历条目,并收集要删除的密钥 Set<Integer>
  2. 迭代集合,并从地图中删除它包含的所有键.(或致电map.keySet().removeAll(keysToRemove))