LinkedHashMap排序
时间: 2024-03-01 08:46:56 浏览: 92
HashMap排序
LinkedHashMap是Java中的一个集合类,它继承自HashMap,并且使用双向链表来维护元素的插入顺序或者访问顺序。因此,LinkedHashMap可以实现按照插入顺序或者访问顺序进行排序。
要使用LinkedHashMap进行排序,可以通过设置accessOrder参数来指定排序方式。当accessOrder为true时,LinkedHashMap会按照访问顺序进行排序;当accessOrder为false时,LinkedHashMap会按照插入顺序进行排序。
下面是一个示例代码,演示了如何使用LinkedHashMap进行排序:
```java
import java.util.LinkedHashMap;
import java.util.Map;
public class LinkedHashMapSortExample {
public static void main(String[] args) {
// 创建一个LinkedHashMap对象
LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
// 添加元素到LinkedHashMap
map.put("apple", 10);
map.put("banana", 5);
map.put("orange", 8);
map.put("grape", 3);
// 打印原始的顺序
System.out.println("原始顺序:");
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
// 按照访问顺序排序
map = new LinkedHashMap<>(16, 0.75f, true);
map.put("apple", 10);
map.put("banana", 5);
map.put("orange", 8);
map.put("grape", 3);
// 打印按照访问顺序排序后的结果
System.out.println("按照访问顺序排序后:");
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
// 按照插入顺序排序
map = new LinkedHashMap<>(16, 0.75f, false);
map.put("apple", 10);
map.put("banana", 5);
map.put("orange", 8);
map.put("grape", 3);
// 打印按照插入顺序排序后的结果
System.out.println("按照插入顺序排序后:");
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
```
这段代码首先创建了一个LinkedHashMap对象,并添加了一些元素。然后,通过设置accessOrder参数为true,实现了按照访问顺序排序;通过设置accessOrder参数为false,实现了按照插入顺序排序。最后,通过遍历LinkedHashMap的entrySet,打印出排序后的结果。
阅读全文