初識LinkedHashMap
大多數(shù)情況下,只要不涉及線程安全問題,Map基本都可以使用HashMap,不過HashMap有一個問題,就是迭代HashMap的順序并不是HashMap放置的順序,也就是無序。HashMap的這一缺點(diǎn)往往會帶來困擾,因?yàn)橛行﹫鼍?,我們期待一個有序的Map。
這個時(shí)候,LinkedHashMap就閃亮登場了,它雖然增加了時(shí)間和空間上的開銷,但是通過維護(hù)一個運(yùn)行于所有條目的雙向鏈表,LinkedHashMap保證了元素迭代的順序。
四個關(guān)注點(diǎn)在LinkedHashMap上的答案
關(guān) 注 點(diǎn) | 結(jié) 論 |
LinkedHashMap是否允許空 | Key和Value都允許空 |
LinkedHashMap是否允許重復(fù)數(shù)據(jù) | Key重復(fù)會覆蓋、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)??梢哉f,理解多態(tài),再去理解LinkedHashMap原理會事半功倍;反之也是,對于LinkedHashMap原理的學(xué)習(xí),也可以促進(jìn)和加深對于多態(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://chinadenli.net/article8/hdsop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、電子商務(wù)、面包屑導(dǎo)航、小程序開發(fā)、服務(wù)器托管、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容