千鋒教育Java入門全套視頻教程(java核心技術(shù),適合java零基礎(chǔ),Java

一、HashMap的定義
HashMap的底層原理使用的是數(shù)組,它是通過我們存入的key值獲取到一個hash值,經(jīng)過計算之后,獲取到一個數(shù)組角標,然后將key值和value值封裝到一個Entry里面,然后存入數(shù)組。需要注意的是當數(shù)組容量不夠的時候,它會自動擴容一倍。
二、HashMap的初始化
1.空參構(gòu)造器:創(chuàng)建HashMap不會開辟存放元素的空間,但是在第一次添加元素的時候,會開辟出一個16個空間的Node數(shù)組。
2.帶參構(gòu)造器: 創(chuàng)建HashMap不會開辟存放元素的空間,但是在第一次添加元素的時候,帶參構(gòu)造器的容量參數(shù)一定會去找離他向上最近的二的n次方的一個容量。
三、HashMap的使用注意事項
如果我們需要將對象中的內(nèi)容當作比較依據(jù)的話,就必須要重寫hashCode和equals方法。
讓屬性完全相同的對象,被map視為是同一個對象,那就需要重寫hashCode,目的是讓這樣的對象在一個鏈表中==屬性完全相同的兩個對象的hashCode值是一樣的。同時,還需要重寫equals方法,在同一個鏈表中比較對象是否相同的依據(jù)是屬性值是否完全相同。
標簽: