【发布时间】:2013-07-06 03:01:34
【问题描述】:
我知道有几种方法可以遍历 hashmap,但是什么是修改 hashmap 的好方法(除了创建一个新的 hashmap 并摆脱旧的 hashmap)
我想要类似的东西
for (Map.Entry<String, Integer> entry : wordcounts.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
if(blacklist.contains(key))
//remove key/value for that key from wordcounts
if(mappings.contains(key))
//change key in wordcounts from one string to another based on the key's value in a <string,string> map (mappings)
}
在我浏览地图时是否可以修改我的地图?我必须使用迭代器吗?
【问题讨论】:
-
您使用
Iterator删除您遇到的条目。更改键值将需要创建一个新的Map并复制未更改的值或修改并插入更改的值。如果您在添加到新Map时将它们从旧Map中删除,则时间和内存成本不会太大。 -
很公平,我将在一张小地图上进行这些特殊修改,这样创建新地图可能会更简单
-
@LeeMeador 我确实详细查看了帖子,虽然它指定了如何删除元素,而不是修改键,但如果我只是创建一个新地图,我想这不是问题
-
我可能最终需要使用迭代器来删除低于一定长度的单词
标签: java map iterator hashmap hashset