java 中Map根据key升序后并返回Map
时间: 2024-02-13 14:05:40 浏览: 127
要实现根据 Map 的 key 升序排序,并返回排序后的 Map 的功能,可以使用 Java 8 中引入的新特性 `Map.entrySet()` 和 `Comparator` 接口的 `comparingByKey()` 方法。具体实现如下:
```java
import java.util.*;
public class MapSortDemo {
public static void main(String[] args) {
// 创建一个 Map
Map<Integer, String> map = new HashMap<>();
map.put(3, "Three");
map.put(1, "One");
map.put(2, "Two");
// 将 Map 转换为 List 并排序
List<Map.Entry<Integer, String>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, Comparator.comparing(Map.Entry::getKey));
// 创建一个新的 LinkedHashMap,并将排序后的结果放入其中
Map<Integer, String> sortedMap = new LinkedHashMap<>();
for (Map.Entry<Integer, String> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
// 输出排序后的 Map
System.out.println(sortedMap);
}
}
```
运行结果:
```
{1=One, 2=Two, 3=Three}
```
以上代码将 Map 转换为 List 后使用 `Comparator.comparing()` 方法按照 key 的升序进行排序,然后将排序后的结果存储在一个新的 LinkedHashMap 中,最后输出排序后的 Map。
阅读全文