stream.tomap 排序
时间: 2024-01-30 12:03:32 浏览: 87
以下是使用Java Stream的`collect`方法和`toMap`函数进行排序的示例:
```java
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 创建一个包含键值对的Map
Map<String, Integer> map = new HashMap<>();
map.put("c", 3);
map.put("a", 1);
map.put("b", 2);
// 使用Stream的collect方法和toMap函数进行排序
Map<String, Integer> sortedMap = map.entrySet()
.stream()
.sorted(Map.Entry.comparingByKey()) // 按键进行排序
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(oldValue, newValue) -> oldValue, // 如果键重复,保留旧值
LinkedHashMap::new // 使用LinkedHashMap保持插入顺序
));
// 输出排序后的Map
System.out.println(sortedMap);
}
}
```
输出结果为:
```
{a=1, b=2, c=3}
```
这个示例中,我们首先创建了一个包含键值对的Map。然后,我们使用Stream的`collect`方法和`toMap`函数对Map进行排序。在`toMap`函数中,我们使用`Map.Entry.comparingByKey()`方法按键进行排序。最后,我们使用`LinkedHashMap`来保持插入顺序,以获取排序后的Map。
阅读全文