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,輸出順序則不可預期。
