📜  Java LinkedHashMap类(1)

📅  最后修改于: 2023-12-03 14:42:15.113000             🧑  作者: Mango

Java LinkedHashMap类

LinkedHashMap类是Java编程语言中的一个类,它扩展了HashMap类并实现了Map接口。LinkedHashMap类提供了与HashMap类相似的功能,但它还维护着元素的顺序,既可以按照插入顺序排序,也可以根据访问顺序排序。在本文中,我们将对Java LinkedHashMap类进行介绍,并阐述其特性和使用方法。

特性
  1. 保持元素的插入顺序,也可以根据访问顺序排序。
  2. 线程不安全。
  3. 支持null键和null值。
  4. 非同步执行,不保证遍历时的有序性。
使用方法

LinkedHashMap类的使用方法几乎与HashMap类相同,但是LinkedHashMap类增加了能够保持元素顺序的功能。我们可以通过以下方式创建一个LinkedHashMap对象:

声明:

LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();

构造时支持三种排序方式:

public  LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
  • initialCapacity: 初始容量。
  • loadFactor: 负载因子。
  • accessOrder: 排序方式,true表示按访问顺序排序,false表示按插入顺序排序。
示例
LinkedHashMap<Integer, String> lhm = new LinkedHashMap<>(10, 0.75f, true);

lhm.put(1, "one");
lhm.put(2, "two");
lhm.put(3, "three");
lhm.put(4, "four");
lhm.put(5, "five");
lhm.get(2);

System.out.println(lhm);

// 输出结果: {1=one, 3=three, 4=four, 5=five, 2=two}

我们可以看到,虽然插入键值对时的顺序是 1,2,3,4,5,但是打印出 LinkedHashMap 对象时,元素是按照 1,3,4,5,2 的顺序排序的。

总结

LinkedHashMap类继承自HashMap类,并且增加了能够保持插入顺序和访问顺序的功能。它的特点是线程不安全,支持null键和null值,非同步执行,因此在多线程环境下需要注意线程安全问题。当需要保证元素的顺序时,我们可以使用LinkedHashMap类。