1

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

谢谢!

4

2 回答 2

4

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

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

于 2012-06-16T06:48:20.370 回答
1

行!我做了以下工作。感谢斯蒂芬 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();
    }
}
于 2012-06-16T07:04:30.427 回答