HashMap如何找出“额外”键并删除它们

时间:2013-02-07 19:57:12

标签: java

假设我有一个Hashmap对象myMap,它包含一组键和值,

key1, value1
key2, value2
...
...

假设我总共有30把钥匙。

现在我得到一个按键列表:key1, key2....,说有28个。

检查myMap对象并删除密钥列表中 NOT 的密钥的最佳方法是什么?我是否必须通过hashmap键集进行迭代并比较列表中的每一个?

感谢。

2 个答案:

答案 0 :(得分:6)

从地图中获取一组键。该集由地图支持。然后在上面调用retainAll。

Set<String> keys = myMap.keySet();
keys.retainAll(keyList);

以下是keySet方法的documentation

以下是retainAll方法的documentation

答案 1 :(得分:2)

对每个键使用containsKey方法,如果方法返回false,则将其删除。另一种选择是使用Map#keySet#retainAll