【发布时间】:2012-06-16 06:44:13
【问题描述】:
我有一个 java 映射,其键为字符串,值为整数。我想从此映射中删除一个值不大于 5 的特定条目(键/值)。任何人都可以建议我怎么做吗?
谢谢!
【问题讨论】:
标签: java collections hashmap iteration
我有一个 java 映射,其键为字符串,值为整数。我想从此映射中删除一个值不大于 5 的特定条目(键/值)。任何人都可以建议我怎么做吗?
谢谢!
【问题讨论】:
标签: java collections hashmap iteration
如果您只有一个常规映射(即没有实现反向映射的其他数据结构),那么您最好的选择是迭代值集,测试每个值,然后使用 Iterator.remove() 删除相关的.
如果您有辅助数据结构,您可以使用它来识别要删除的条目。但是“成本”是这样的数据结构需要空间来表示和时间来更新......而且你的代码更复杂。
【讨论】:
好的!我做了以下工作。感谢斯蒂芬 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();
}
}
【讨论】: