詳解Java中LinkedHashMap-創(chuàng)新互聯(lián)

初識(shí)LinkedHashMap

創(chuàng)新互聯(lián)主營(yíng)畢節(jié)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,畢節(jié)h5小程序設(shè)計(jì)搭建,畢節(jié)網(wǎng)站營(yíng)銷推廣歡迎畢節(jié)等地區(qū)企業(yè)咨詢

大多數(shù)情況下,只要不涉及線程安全問題,Map基本都可以使用HashMap,不過HashMap有一個(gè)問題,就是迭代HashMap的順序并不是HashMap放置的順序,也就是無序。HashMap的這一缺點(diǎn)往往會(huì)帶來困擾,因?yàn)橛行﹫?chǎng)景,我們期待一個(gè)有序的Map。

這個(gè)時(shí)候,LinkedHashMap就閃亮登場(chǎng)了,它雖然增加了時(shí)間和空間上的開銷,但是通過維護(hù)一個(gè)運(yùn)行于所有條目的雙向鏈表,LinkedHashMap保證了元素迭代的順序。

四個(gè)關(guān)注點(diǎn)在LinkedHashMap上的答案

關(guān)  注  點(diǎn) 結(jié)      論
LinkedHashMap是否允許空 Key和Value都允許空
LinkedHashMap是否允許重復(fù)數(shù)據(jù) Key重復(fù)會(huì)覆蓋、Value允許重復(fù)
LinkedHashMap是否有序 有序
LinkedHashMap是否線程安全 非線程安全

LinkedHashMap基本結(jié)構(gòu)

關(guān)于LinkedHashMap,先提兩點(diǎn):

1、LinkedHashMap可以認(rèn)為是HashMap+LinkedList,即它既使用HashMap操作數(shù)據(jù)結(jié)構(gòu),又使用LinkedList維護(hù)插入元素的先后順序

2、LinkedHashMap的基本實(shí)現(xiàn)思想就是----多態(tài)。可以說,理解多態(tài),再去理解LinkedHashMap原理會(huì)事半功倍;反之也是,對(duì)于LinkedHashMap原理的學(xué)習(xí),也可以促進(jìn)和加深對(duì)于多態(tài)的理解。

為什么可以這么說,首先看一下,LinkedHashMap的定義:

public class LinkedHashMap<K,V>
 extends HashMap<K,V>
 implements Map<K,V>
{
 ...
}

本文標(biāo)題:詳解Java中LinkedHashMap-創(chuàng)新互聯(lián)
文章路徑:http://bm7419.com/article8/hdsop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)電子商務(wù)、面包屑導(dǎo)航、小程序開發(fā)、服務(wù)器托管、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)