【问题标题】:Removing values from a Java hashmap从 Java 哈希图中删除值
【发布时间】:2014-01-20 22:53:52
【问题描述】:

假设我愿意Map<String, Integer> map = new HashMap<String, Integer>();

map.containsValue(value) 无论值是否在 hashmap 中都返回 true。但是我发现没有办法删除一个值。喜欢map.removeValue(value)。您只能删除密钥,如map.removeKey(key).

现在,我的问题是,删除键是否也会删除值?

那么当我搜索map.containsValue(value)时,如果我删除了与map.removeKey的值关联的键,它会返回false吗?

【问题讨论】:

  • 你为什么不试试呢? removeKey 也不存在。如果您阅读文档,它会声明:“如果存在,则从该映射中删除键的映射(可选操作)。”
  • 你从尝试中得到了什么?
  • 你更喜欢浪费别人的时间...有道理...
  • 代码不多。尝试它会提高你的知识。很明显你不喜欢编程。
  • @user2817240 你在这里问这个问题比尝试自己测试或阅读文档浪费了更多时间。

标签: java map hashmap


【解决方案1】:

现在,我的问题是,删除键是否也会删除值?

是的。有点像。

实际上,它删除了由键和值组成的特定条目

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

那么当我搜索map.containsValue(value)时,如果我删除了与map.removeKey的值关联的键,它会返回false吗?

这取决于...见上文。


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

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

【讨论】:

  • 好的,谢谢你的回答。许多其他回复都告诉我“试试看”,但我会阅读 java 文档。
猜你喜欢
  • 1970-01-01
  • 2015-11-17
  • 2016-01-06
  • 2023-04-09
  • 2015-09-03
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多