之前我們介紹了Map接口的兩個實現(xiàn)類HashMapTreeMap,本節(jié)來介紹另一個實現(xiàn)類LinkedHashMap。它是HashMap的子類,但可以保持元素按插入或訪問有序,這與TreeMap按鍵排序不同。

按插入有序容易理解,按訪問有序是什么意思呢?這兩個有序有什么用呢?內(nèi)部是怎么實現(xiàn)的呢?本節(jié)就來探討這些問題。從用法開始。

用法

基本概念

LinkedHashMap是HashMap的子類,但內(nèi)部還有一個雙向鏈表維護鍵值對的順序,每個鍵值對既位于哈希表中,也位于這個雙向鏈表中。

LinkedHashMap支持兩種順序,一種是插入順序,另外一種是訪問順序。

插入順序容易理解,先添加的在前面,后添加的在后面,修改操作不影響順序。

訪問順序是什么意思呢?所謂訪問是指get/put操作,對一個鍵執(zhí)行g(shù)et/put操作后,其對應(yīng)的鍵值對會移到鏈表末尾,所以,最末尾的是最近訪問的,最開始的最久沒被訪問的,這種順序就是訪問順序。

LinkedHashMap有五個構(gòu)造方法,其中四個都是按插入順序,如下所示: