java - 如何在迭代 HashMap 时删除另一项(不是您持有的项)

标签 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
        }
    }

然后问题就出现了。 非常感谢您的建议。

最佳答案

分两次完成:

  1. 迭代条目,并收集 Set<Integer> 中要删除的键
  2. 迭代该集合,并从映射中删除它包含的所有键。 (或调用map.keySet().removeAll(keysToRemove))

关于java - 如何在迭代 HashMap 时删除另一项(不是您持有的项),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8947545/

相关文章:

java - JPA 多对一关系 CascadeType 行为

java - 易变字段中的发生前关系

java - 如何一次向数组列表添加多个值?

java - 如何在 java8 中使用方法引用打印多个参数

Java HashMap : How to get a key and value by index?

java - 在 JSF/PrimeFaces 的数据表中显示包含 Date 对象的 HashMap 的内容

java - SWT java.lang.IllegalArgumentException : Argument cannot be null

java - java正则表达式的修改

java - Hashmap get 返回 null

java - 如何使用 O(1) get() 方法将键映射到 java 中的 hashmap 中的值?