📅  最后修改于: 2023-12-03 14:42:15.108000             🧑  作者: Mango
Java 的 LinkedHashMap 实现了 Map 接口并维护着它们的插入顺序,即一个元素的插入顺序就是它们在 Map 中出现的顺序。此外,还可以通过指定 accessOrder 为 true 来按访问顺序来排序元素。
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put(3, "c");
linkedHashMap.put(1, "a");
linkedHashMap.put(2, "b");
for (Map.Entry<Integer, String> entry : linkedHashMap.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
// 按插入顺序输出
// 3 c
// 1 a
// 2 b
linkedHashMap = new LinkedHashMap<>(16, 0.75f, true);
linkedHashMap.put(3, "c");
linkedHashMap.put(1, "a");
linkedHashMap.put(2, "b");
linkedHashMap.get(1);
for (Map.Entry<Integer, String> entry : linkedHashMap.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
// 按访问顺序输出
// 2 b
// 3 c
// 1 a
accessOrder
:排序方式,默认为 false。false 表示按插入顺序排序,true 表示按访问顺序排序。initialCapacity
:初始化大小,默认为 16。loadFactor
:加载因子,默认为 0.75f。removeEldestEntry
:可以重写此方法,当满足一定条件时,移除最老的 entry。