linkedhashmap如何根据key倒序
时间: 2024-05-08 12:18:42 浏览: 104
linked-hash-map:按插入顺序保存键值对的 HashMap 包装器
遍历?
LinkedHashMap可以基于插入顺序或访问顺序进行迭代。要使其按照key的倒序迭代,可以使用Collections.reverseOrder()方法对key进行比较,并使用该比较器创建一个新的LinkedHashMap。例如:
```java
LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
LinkedHashMap<String, Integer> reverseMap = new LinkedHashMap<>(
map.entrySet()
.stream()
.sorted(Collections.reverseOrder(Map.Entry.comparingByKey()))
.collect(
Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (a, b) -> a, LinkedHashMap::new)));
for (Map.Entry<String, Integer> entry : reverseMap.entrySet()) {
System.out.println(entry.getKey() + ", " + entry.getValue());
}
// Output:
// c, 3
// b, 2
// a, 1
```
这里使用了Java 8的流和lambda表达式,首先将map的entrySet转换成一个流,然后使用Collections.reverseOrder()方法创建一个比较器,按照key的倒序进行排序,最后将排序后的结果收集回LinkedHashMap中。
阅读全文