在地图上设置操作

时间:2011-03-24 20:52:32

标签: java map hashmap

如何在HashMap上执行设置操作,例如Collections.addAll()

4 个答案:

答案 0 :(得分:3)

根据您对所提问题的评论,我认为您真正需要的是Set not a Map。

尝试

Set<String> mySet = new HashSet<String>();
mySet.addAll(...);

如果存在值,请使用mySet.contains("someString");快速确定。它应该等同于你似乎想要做的事情。

答案 1 :(得分:2)

通过例如Map.putAll

您也可以直接对可以通过Map.entrySet获取的地图条目集进行设置操作。

来自the documentation

  

返回此映射中包含的映射的Set视图。 该集由地图支持,因此对地图的更改会反映在集中,反之亦然。

答案 2 :(得分:1)

这样:

hashMap.putAll(map);

来自documentation

  

从中复制所有映射   指定地图到这个地图这些   映射将替换任何映射   这个地图有任何键   目前在指定的地图中。

答案 3 :(得分:1)

您可以执行

等操作
Map<String, String> map = new HashMap<String, String>();
Set<String> set = map.keySet();
for(String s: set);
set.retainAll(set2); // keeps the keys in set2
set.removeAll(set3); // removes the keys in set3
set.remove(s);

您还可以在集中转换地图。没有ConcurrentHashSet,但你可以做

Set<String> set = Collections.setFromMap(new ConcurrentHashMap<String, Boolean>());