首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 學習筆記:深入理解 LinkedHashMap 與有序 Map 實作

     編輯:Java 綜合教學

LinkedHashMap 核心特性

LinkedHashMap 是 HashMap 的子類,它透過維護一條雙向鏈表來保持元素的插入順序(或存取順序)。這意味著當你遍歷 Map 時,元素會按照「放入的順序」或「最近被存取的順序」輸出,這與 LinkedHashSet 的行為一致。

程式碼範例:驗證插入順序

import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;

public class LinkedHashMapDemo {
    public static void main(String[] args) {
        // 使用 LinkedHashMap 實例,但宣告為 HashMap 介面型別
        HashMap<Integer, String> hm = new LinkedHashMap<Integer, String>();

        hm.put(7, "zhouqi");
        hm.put(3, "zhangsan");
        hm.put(1, "qianyi");
        hm.put(5, "wangwu");

        // 遍歷輸出
        Iterator<Map.Entry<Integer, String>> it = hm.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<Integer, String> me = it.next();
            Integer key = me.getKey();
            String value = me.getValue();
            System.out.println(key + ":" + value);
        }
    }
}

執行結果說明

程式輸出將嚴格遵循 put 的順序:

7:zhouqi
3:zhangsan
1:qianyi
5:wangwu

若改用一般的 HashMap,輸出順序則不可預期。

LinkedHashMap 執行結果示意圖

應用場景

  • 需要固定迭代順序的快取實作(如 LRU Cache)
  • 保持配置檔案屬性的讀寫順序
  • 任何需「可預測遍歷順序」的鍵值對存儲場合
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved