【问题标题】:Java - Reasons for Allowing null as a HashMap Key?Java - 允许 null 作为 HashMap 键的原因?
【发布时间】:2012-03-28 17:23:46
【问题描述】:

为什么 Java 决定允许 'null' 作为 HashMap 中的键?我们知道 hashcode() 不能在空值上计算。这个决定是否有任何设计考虑,允许在 HashMap 中使用 Hashtable 中不存在的空键(除了考虑作为默认值)?

【问题讨论】:

    标签: java


    【解决方案1】:

    来自JDK 1.2 Java Collections API Change Summary(不知道在Oracle的网站上哪里可以找到正式版):

    为 HashMap 添加了空键支持。这样做是为了与 TreeMap 和迟来的、无怨无悔的 ArrayMap,以及因为客户 要求它。现在我们所有的通用系列 实现接受空键、值和元素。

    Joshua Bloch and Doug Lea disagreed on this,这给concurrent hash maps带来了问题。

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 2020-05-29
      • 2018-03-09
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      • 2020-08-03
      相关资源
      最近更新 更多