让我说Map<String, Integer> map = new HashMap<String, Integer>();
map.containsValue(value)
都返回true。但我发现没有办法删除一个值。像map.removeValue(value)
一样。您只能删除密钥,如map.removeKey(key).
现在,我的问题是,删除密钥还删除了值吗?
因此,当我搜索map.containsValue(value)
时,如果我使用map.removeKey
删除与该值相关联的密钥,它是否会返回false?
答案 0 :(得分:1)
现在,我的问题是,删除密钥还删除了值吗?
是。排序。
实际上,它会删除由密钥和值组成的特定条目。
如果该值也用于其他条目,则该其他条目不受影响,该值仍会显示在values
集合中。
因此,当我搜索
map.containsValue(value)
时,如果我使用map.removeKey
删除与该值相关联的密钥,它是否会返回false?
这取决于......见上文。
仔细阅读javadoc 可以轻松找到此信息。
(“试一试”方法的问题在于,很容易编写一个“黑匣子”测试,这会导致你得出错误的结论。我只建议“尝试看看”,如果是javadoc没有包含这些信息。我会添加“阅读源代码”......)