之前我們介紹了Map接口的兩個實(shí)現(xiàn)類HashMap和TreeMap,本節(jié)來介紹另一個實(shí)現(xiàn)類LinkedHashMap。它是HashMap的子類,但可以保持元素按插入或訪問有序,這與TreeMap按鍵排序不同。
按插入有序容易理解,按訪問有序是什么意思呢?這兩個有序有什么用呢?內(nèi)部是怎么實(shí)現(xiàn)的呢?本節(jié)就來探討這些問題。從用法開始。
用法
基本概念
LinkedHashMap是HashMap的子類,但內(nèi)部還有一個雙向鏈表維護(hù)鍵值對的順序,每個鍵值對既位于哈希表中,也位于這個雙向鏈表中。
LinkedHashMap支持兩種順序,一種是插入順序,另外一種是訪問順序。
插入順序容易理解,先添加的在前面,后添加的在后面,修改操作不影響順序。
訪問順序是什么意思呢?所謂訪問是指get/put操作,對一個鍵執(zhí)行g(shù)et/put操作后,其對應(yīng)的鍵值對會移到鏈表末尾,所以,最末尾的是最近訪問的,最開始的最久沒被訪問的,這種順序就是訪問順序。
LinkedHashMap有五個構(gòu)造方法,其中四個都是按插入順序,如下所示:
public LinkedHashMap() public<