java8 排序map
时间: 2023-11-08 10:16:57 浏览: 91
在 Java 8 中,可以使用 `SortedMap` 和 `Comparator` 接口来对 `Map` 进行排序。下面是一个示例代码,演示如何使用 Java 8 对 `Map` 进行排序:
```java
import java.util.*;
public class MapSortingExample {
public static void main(String[] args) {
// 创建一个未排序的 Map
Map<String, Integer> unsortedMap = new HashMap<>();
unsortedMap.put("John", 25);
unsortedMap.put("Mary", 30);
unsortedMap.put("Alex", 20);
unsortedMap.put("Peter", 35);
// 使用 Java 8 的新特性对 Map 进行排序
Map<String, Integer> sortedMap = new LinkedHashMap<>();
unsortedMap.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue()));
// 打印排序后的 Map
sortedMap.forEach((key, value) -> System.out.println(key + ": " + value));
}
}
```
运行以上代码,输出结果将按照值的升序排序:
```
Alex: 20
John: 25
Mary: 30
Peter: 35
```
如果你想按照值的降序排序,可以使用 `Collections.reverseOrder()` 方法:
```java
unsortedMap.entrySet().stream()
.sorted(Map.Entry.comparingByValue(Collections.reverseOrder()))
.forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue()));
```
这样,结果将按照值的降序排列。
阅读全文