5
爲什麼Java決定允許'null'作爲HashMap中的關鍵字?正如我們所知,hashcode()不能用空值計算。這個決定是否有任何設計考慮允許HashMap中的null鍵在Hashtable中不存在(除了考慮作爲默認值)?Java - 允許null作爲HashMap鍵的原因?
爲什麼Java決定允許'null'作爲HashMap中的關鍵字?正如我們所知,hashcode()不能用空值計算。這個決定是否有任何設計考慮允許HashMap中的null鍵在Hashtable中不存在(除了考慮作爲默認值)?Java - 允許null作爲HashMap鍵的原因?
從JDK 1.2 Java Collections API Change Summary(不知道在哪裏可以找到Oracle的網站正式版):以HashMap的
加空關鍵支撐。這是爲了與 TreeMap和最近的未開發ArrayMap保持一致,並且因爲客戶 請求了它。現在我們所有的通用集合 接受null鍵,值和元素。
Joshua Bloch and Doug Lea disagreed on this,並且這導致了concurrent hash maps的問題。