java 把一个Map转成LinkedHashMap,按key正序排序
时间: 2024-02-07 19:03:47 浏览: 163
可以使用Java 8 的 Stream API 和 Collectors 工具类实现对Map按key进行正序排序并转换为LinkedHashMap的操作,示例代码如下:
```java
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("c", 3);
map.put("a", 1);
map.put("b", 2);
System.out.println("原始Map:" + map);
Map<String, Integer> sortedMap = map.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (v1, v2) -> v1, LinkedHashMap::new));
System.out.println("按key正序排序后的Map:" + sortedMap);
}
}
```
输出结果为:
```
原始Map:{a=1, b=2, c=3}
按key正序排序后的Map:{a=1, b=2, c=3}
```
在这个示例中,我们使用stream()方法将map转化为一个流,然后通过sorted()方法按照key正序排序,最后使用Collectors.toMap()方法将排序后的结果转化为LinkedHashMap。在toMap()方法中,我们使用了保留原始值的方式来处理键冲突。最后,我们将排序后的Map打印出来。
阅读全文