關於集合框架
回答
哈希表不允許空值,因爲它使用的equals和對象的hashCode方法添加到它
你沒有添加對象到集合中。您正在添加參考。
至於爲什麼HashTable
不允許null
鍵和值 - 這只是一個設計決定;在某些情況下,禁止使用空密鑰會很有幫助,而在其他情況下則很煩人。例如,HashMap
確實允許空鍵和值。有禁止空各種原因:
通常null鍵或空值指示在調用的程序代碼出錯。在插入點拒絕這一點使得發現錯誤比等待代碼獲取值更容易,並且,然後具有意外的空值。
如果您知道,在一個映射值不能爲空,那麼你就需要做一個單獨的支票遏制,然後獲取:您可以獲取,如果結果爲空,你知道鑰匙不見了。
它需要更多的工作來處理地圖實現中的空鍵。雖然空值可以有時是有用的,null鍵幾乎從來沒有是。
只要是明確的,一個流行的原因不允許null鍵或值是因爲它們經常表示正在使用它們的程序中的邏輯錯誤。例如,Guava在Google的代碼庫上進行了一項研究,結果表明95%的集合從來沒有空值(並且拒絕空值可以幫助這些用戶進行調試),5%的集合需要空值(並且通常針對該情況通常有解決方法)。 –
@LouisWasserman:是的 - 將編輯來澄清。 –
公平地說,空密鑰是單數的,因爲在任何給定時間只有一個引用可能被映射爲空值? – corsiKa
- 1. 集合框架
- 2. 實體框架 - 關聯集合
- 3. Java集合框架
- 4. 集合框架:集合視圖和實際集合用於迭代
- 5. Java集合:框架或庫?
- 6. java集合框架歷史
- 7. Java腳本集合框架
- 8. 框架集邊框地獄框架集
- 9. 關於fork-join框架
- 10. 關於黃瓜框架
- 11. 關於WOJO PHP框架
- 12. 關於在NinevehGL框架
- 13. 關於使用框架coreData
- 14. 關於框架(概念)
- 15. 關於Yii 1.2框架
- 16. 關於MS-Sync框架
- 17. 關於java spring mvc框架
- 18. 關於嘲諷框架
- 19. 關於持久性框架
- 20. 關於集合函數
- 21. 爲什麼實體框架不會帶來關係集合?
- 22. 將關係映射到實體框架中的抽象集合
- 23. 在實體框架中定義集合而不創建關係
- 24. 實體框架 - 包裝相關對象的集合
- 25. 排序一對多關係集合 - 實體框架Codefirst
- 26. 實體框架核心 - 更新相關集合
- 27. 實體框架 - 加載相關數據的集合
- 28. Apache Commons Collections框架比JDK集合框架更快嗎?
- 29. 實體框架:取多個集合與過濾器應用於
- 30. java集合vs集合框架中的地圖
你的第二個問題的重複:http://stackoverflow.com/questions/7556357/why-does-hashtable-not-take-null-key – assylias