How does the 'accessOrder' Configuration in LinkedHashMap Work in Java?

2025 年 3 月 31 日 | 阅读 3 分钟

LinkedHashMap 是 Java 编程中一个预定义的类,它可以继承自 HashMap。它为哈希表提供了一致的迭代顺序。java.util 包中包含 LinkedHashMap,用于维护双向链表。

语法

参数

K: 可以定义为映射中键的类型。

V: 可以定义为映射中值的类型。

intialCapacity: 可以描述为表示 LinkedHashMap 起始容量的整数。

loadFactory: 可以描述为指定 LinkedHashMap 的加载因子。

accessOrder: 可以描述为一个信号,表示 LinkedHashMap 保持插入顺序或访问顺序。

注意:用户在 LinkedHashMap 上进行访问操作的顺序决定了哪些项会首先被打印:首先访问的元素会首先被打印,其次访问的元素会其次被打印,依此类推。

算法

步骤 1: 创建一个名为 AccessOrder 的新类,并包含将用于提供访问顺序逻辑的 main 方法

步骤 2: 创建一个 LinkedHashMap<K, V> 对象的实例,并将 accessOrder 设置为 true,以启用对映射项的访问顺序排序,而不是插入顺序。

步骤 3: 使用 put(K key, V value) 函数将键值对填充到 LinkedHashMap 中。元素通过此操作存储在映射中。

步骤 4: 三次调用 get(Object key) 方法将模拟对 LinkedHashMap 中各个条目的访问,从而允许您检索其元素。这将使元素的访问顺序保持最新。

步骤 5: 显示 LinkedHashMap 的最终状态,该状态按照访问操作确定的顺序打印或显示条目。

  • 哈希表的初始桶数由参数 1 (16) 指定,该参数也称为 LinkedHashMap 的初始容量。
  • 参数 2 (0.75f) 可以定义为加载因子,它反过来决定何时自动调整 LinkedHashMap 的大小。
  • 当参数 3 (true) 设置为 true 时,可以启用访问顺序。然后 LinkedHashMap 保持条目顺序与访问顺序一致。

实施

文件名: AccessOrderExample.java

输出

 
The Entries present in the  LinkedHashMap with access order is given by :
3: Three
2: Two
1: One