linkedhashmap类
时间: 2024-11-05 18:10:41 浏览: 21
`LinkedHashMap` 是 Java 中的一个内置数据结构,它是 `HashMap` 的子类,但同时还实现了 `ListMap` 接口。这个类的主要特点是保留了插入顺序(即元素添加到 map 时的顺序),并且提供了向前和向后的遍历功能。
在 `LinkedHashMap` 中,键值对是以链表的形式存储的,每个节点包含一个键值对。当需要访问或删除元素时,链表会被按照插入顺序重新排列。如果你需要保持插入顺序并偶尔需要按照插入顺序进行遍历,那么 `LinkedHashMap` 就非常适用。
`LinkedHashMap` 提供了以下两个可选参数:
1. **accessOrder**: 如果为 true,元素将根据最近访问的时间(而不是插入时间)排序。默认情况下,这是 false,表示按插入顺序排序。
2. **maximumSize**: 可选容量大小,如果达到此大小,当再添加新元素时,会自动删除最久未使用的条目(基于访问频率)。
以下是使用 `LinkedHashMap` 的基本示例:
```java
import java.util.LinkedHashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 创建一个具有初始容量和负载因子的 LinkedHashMap
Map<String, Integer> linkedMap = new LinkedHashMap<>(10, 0.75f, true);
// 添加元素,它们会按照插入顺序
linkedMap.put("First", 1);
linkedMap.put("Second", 2);
linkedMap.put("Third", 3);
// 遍历元素,可以看到它们的顺序
for (Map.Entry<String, Integer> entry : linkedMap.entrySet()) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
}
}
```
阅读全文