新聞中心
hashmap擴(kuò)容為什么是2倍?
HashMap擴(kuò)容為2倍的原因是為了提高查找效率,減少?zèng)_突的可能性。當(dāng)HashMap的容量達(dá)到一定程度時(shí),就會(huì)觸發(fā)擴(kuò)容操作,將容量擴(kuò)大一倍,以提高查找效率。

成都網(wǎng)站建設(shè)公司更懂你!創(chuàng)新互聯(lián)只做搜索引擎喜歡的網(wǎng)站!成都網(wǎng)站制作前臺(tái)采用搜索引擎認(rèn)可的DIV+CSS架構(gòu),全站HTML靜態(tài),html5+CSS3網(wǎng)站,提供:網(wǎng)站建設(shè),微信開發(fā),小程序設(shè)計(jì),商城開發(fā),app軟件定制開發(fā),域名注冊(cè),服務(wù)器租售,網(wǎng)站代托管運(yùn)營(yíng),微信公眾號(hào)代托管運(yùn)營(yíng)。
此外,擴(kuò)容為2倍還可以減少?zèng)_突的可能性,因?yàn)?的冪次方的容量可以更好地分布元素,從而減少?zèng)_突。
hashmap可以存儲(chǔ)null嗎?
可以的。
HashMap基于Map接口實(shí)現(xiàn),元素以鍵值對(duì)的方式存儲(chǔ),并且允許使用null 建和null值,因?yàn)閗ey不允許重復(fù),因此只能有一個(gè)鍵為null,另外HashMap不能保證放入元素的順序,它是無(wú)序的,和放入的順序并不能相同。HashMap是線程不安全的。
HashMap的擴(kuò)容操作是一項(xiàng)很耗時(shí)的任務(wù),所以如果能估算Map的容量,最好給它一個(gè)默認(rèn)初始值,避免進(jìn)行多次擴(kuò)容。HashMap的線程是不安全的,多線程環(huán)境中推薦是ConcurrentHashMap。
hashmap可以存null嗎?
HashMap可以存儲(chǔ)null值,但是需要注意的是,如果將null值作為鍵存儲(chǔ)在HashMap中,則只能有一個(gè)null鍵,因?yàn)镠ashMap不允許重復(fù)鍵,而且在使用get()方法獲取null鍵的值時(shí),需要判斷是否為null,否則可能會(huì)出現(xiàn)NullPointerException異常。
另外,如果將null值作為值存儲(chǔ)在HashMap中,則可以有多個(gè)null值,因?yàn)镠ashMap允許存儲(chǔ)重復(fù)的值。因此,在使用HashMap時(shí),需要根據(jù)實(shí)際情況來(lái)決定是否存儲(chǔ)null值,以及如何處理null值的情況。
HashMap基于Map接口實(shí)現(xiàn),元素以鍵值對(duì)的方式存儲(chǔ),并且允許使用null 建和null值,因?yàn)閗ey不允許重復(fù),因此只能有一個(gè)鍵為null,另外HashMap不能保證放入元素的順序,它是無(wú)序的,和放入的順序并不能相同。HashMap是線程不安全的。
static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; //默認(rèn)初始化大小 16 static final float DEFAULT_LOAD_FACTOR = 0.75f; //負(fù)載因子0.75static final Entry,?>[] EMPTY_TABLE = {}; //初始化的默認(rèn)數(shù)組transient int size; //HashMap中元素的數(shù)量int threshold; //判斷是否需要調(diào)整HashMap的容量
HashMap的擴(kuò)容操作是一項(xiàng)很耗時(shí)的任務(wù),所以如果能估算Map的容量,最好給它一個(gè)默認(rèn)初始值,避免進(jìn)行多次擴(kuò)容。HashMap的線程是不安全的,多線程環(huán)境中推薦是
hashmap設(shè)置初始容量是指數(shù)量還是字節(jié)?
字節(jié)。
眾所周知,HashMap初始容量16,負(fù)載因子0.75,如果我們沒有設(shè)置初始容量大小,隨著元素的不斷增加,HashMap會(huì)發(fā)生多次擴(kuò)容,而HashMap中的擴(kuò)容機(jī)制決定了每次擴(kuò)容都需要重建hash表,是非常影響性能的。同樣設(shè)置過(guò)大浪費(fèi)內(nèi)存,因此設(shè)置一個(gè)合適的初始容量是有必要的!
到此,以上就是小編對(duì)于hashmap擴(kuò)容時(shí)如何保證可操作的問(wèn)題就介紹到這了,希望這4點(diǎn)解答對(duì)大家有用。
當(dāng)前文章:hashmap擴(kuò)容為什么是2倍?(hashmap怎么保證擴(kuò)容時(shí)可用)
網(wǎng)站URL:http://www.dlmjj.cn/article/coceige.html


咨詢
建站咨詢
