hashmap為什麼要允許key和value為空 但是hashtable卻不允許呢?源碼說這是特殊的map,難道它除了線程安全,還有別的嗎?
HashTable是Java中的遺留類,現在不怎麼用了,這裡HashMap vs HashTable有個解釋。也許HashTable類的設計者當時認為null作為key 和value 是沒有什麼用的。
HashMap是之後的版本引進的類,它的接口Map表達的意義更為廣泛,也許HashMap的設計者認為null作為key和value是有實際意義的,所以才允許為null.
當然實際項目中,真的是有value為null的情況的。key為null的情況比較少見,但不代表沒有。HashMap允許null為key和value應當是類的設計者思考讓這個類更有用的設計吧。