【问题标题】:how to remove an entry from hashmap by checking its value?如何通过检查其值从哈希图中删除一个条目?
【发布时间】:2012-06-16 06:44:13
【问题描述】:

我有一个 java 映射,其键为字符串,值为整数。我想从此映射中删除一个值不大于 5 的特定条目(键/值)。任何人都可以建议我怎么做吗?

谢谢!

【问题讨论】:

    标签: java collections hashmap iteration


    【解决方案1】:

    如果您只有一个常规映射(即没有实现反向映射的其他数据结构),那么您最好的选择是迭代值集,测试每个值,然后使用 Iterator.remove() 删除相关的.

    如果您有辅助数据结构,您可以使用它来识别要删除的条目。但是“成本”是这样的数据结构需要空间来表示和时间来更新......而且你的代码更复杂。

    【讨论】:

      【解决方案2】:

      好的!我做了以下工作。感谢斯蒂芬 C:

      Iterator<Map.Entry<String,Integer>> iter = TestMap.entrySet().iterator();
      while (iter.hasNext()) {
          Map.Entry<String,Integer> entry = iter.next();
          if(entry.getValue() <= 5){
              iter.remove();
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-03
        • 2011-04-16
        • 2023-04-09
        • 2021-06-01
        • 2015-08-20
        • 2012-12-23
        • 1970-01-01
        • 2023-03-17
        相关资源
        最近更新 更多