我有一个java映射,其键中包含字符串,其值中包含整数。我想从这个地图中删除一个没有大于5的值的特定条目(键/值)。任何人都可以建议我怎么做?
谢谢!
答案 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();
}
}