从Java散列映射中删除值

时间:2014-01-20 22:53:52

标签: java map hashmap

让我说Map<String, Integer> map = new HashMap<String, Integer>();

无论是否在hashmap中找到该值,

map.containsValue(value)都返回true。但我发现没有办法删除一个值。像map.removeValue(value)一样。您只能删除密钥,如map.removeKey(key).

现在,我的问题是,删除密钥还删除了值吗?

因此,当我搜索map.containsValue(value)时,如果我使用map.removeKey删除与该值相关联的密钥,它是否会返回false?

1 个答案:

答案 0 :(得分:1)

  

现在,我的问题是,删除密钥还删除了值吗?

是。排序。

实际上,它会删除由密钥和值组成的特定条目

如果该值也用于其他条目,则该其他条目不受影响,该值仍会显示在values集合中。

  

因此,当我搜索map.containsValue(value)时,如果我使用map.removeKey删除与该值相关联的密钥,它是否会返回false?

这取决于......见上文。


仔细阅读javadoc 可以轻松找到此信息。

(“试一试”方法的问题在于,很容易编写一个“黑匣子”测试,这会导致你得出错误的结论。我只建议“尝试看看”,如果是javadoc没有包含这些信息。我会添加“阅读源代码”......)