java面試題之Map


1.在Java中,為什么基本類型不能做為HashMap的鍵值,而只能是引用類型,把引用類型做為HashMap的健值,需要注意哪些地方。

(1) 在Java中是使用泛型來約束HashMap中的key和value的類型的,即HashMap<K, V>;而泛型在Java的規定中必須是對象Object類型的,也就是說HashMap<K, V>可以理解為HashMap<Object, Object>,很顯然基本數據類型不是Object類型的,因此不能作為鍵值,只能是引用類型。雖然我們在HashMap中可以這樣添加數據:“map.put(1, “Java”);”,但實際上是將其中的key值1進行了自動裝箱操作,變為了Integer類型。
(2) 引用數據類型分為兩類:系統提供的引用數據類型(如包裝類、String等)以及自定義引用數據類型。系統提供的引用數據類型中已經重寫了HashCode()和equals()兩個方法,所以能夠保證Map中key值的唯一性;但是自定義的引用數據類型需要自己重寫HashCode()和equals()這兩個方法,以保證Map中key值的唯一性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM