java8 map按照key大小排序
时间: 2024-05-14 17:19:26 浏览: 119
在 Java 8 中,我们可以使用 `Stream` 和 `Comparator` 来对 `Map` 按照键(key)的大小进行排序。以下是一个示例代码:
```java
Map<Integer, String> map = new HashMap<>();
map.put(3, "apple");
map.put(1, "banana");
map.put(2, "orange");
Map<Integer, String> sortedMap = map.entrySet()
.stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
System.out.println(sortedMap);
```
输出结果为 `{1=banana, 2=orange, 3=apple}`。
在上述代码中,我们将 `Map` 转换为一个 `Stream` 对象,并使用 `Map.Entry.comparingByKey()` 方法对其进行排序。最后,我们使用 `Collectors.toMap()` 方法将排序后的结果收集到一个新的 `LinkedHashMap` 中。
需要注意的是,这里使用了 `LinkedHashMap` 而不是 `HashMap`,是因为 `LinkedHashMap` 可以保持插入顺序,而 `HashMap` 不能保证顺序。
阅读全文