如何通过检查其值来从hashmap中删除一个条目?

时间:2012-06-16 06:44:14

标签: java collections hashmap iteration

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

谢谢!

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

确定!我做了以下工作。感谢Stephen 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();
    }
}