hashMap 转linkedHashmap 排序
时间: 2023-07-15 16:13:08 浏览: 102
在 Java 中,HashMap 是一个无序的键值对集合,而 LinkedHashMap 则是一个有序的键值对集合,其中元素按照插入顺序或者访问顺序进行排序。如果你想要将 HashMap 转换为有序的 LinkedHashMap 并按照某种排序规则进行排序,可以使用以下代码:
```java
// 创建一个 HashMap
Map<String, Integer> hashMap = new HashMap<>();
hashMap.put("apple", 5);
hashMap.put("banana", 2);
hashMap.put("orange", 4);
hashMap.put("grape", 3);
// 将 HashMap 转换为 LinkedHashMap 并按照值排序
Map<String, Integer> sortedMap = hashMap.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));
// 打印有序的 LinkedHashMap
System.out.println(sortedMap);
```
这段代码将会输出以下结果:
```
{banana=2, grape=3, orange=4, apple=5}
```
这里使用了 Java 8 中的流式 API,首先通过 `entrySet()` 方法将 HashMap 转换为键值对的集合,然后使用 `sorted()` 方法对其进行排序,最后使用 `collect()` 方法将其转换为 LinkedHashMap 并按照值进行排序。
阅读全文