如何将hasmap排序
时间: 2024-01-23 16:04:03 浏览: 13
HashMap是一种无序的数据结构,因此不能直接对HashMap进行排序。但是可以通过将HashMap中的entry转换为List,然后对List进行排序,最后再将排序好的List转回一个新的HashMap即可实现对HashMap的排序。
以下是示例代码:
```
import java.util.*;
public class SortHashMap {
public static void main(String[] args) {
// 创建一个HashMap并添加数据
HashMap<Integer, String> hashMap = new HashMap<>();
hashMap.put(2, "b");
hashMap.put(1, "a");
hashMap.put(4, "d");
hashMap.put(3, "c");
System.out.println("原始HashMap:" + hashMap);
// 将HashMap转换为List
List<Map.Entry<Integer, String>> list = new ArrayList<>(hashMap.entrySet());
// 对List进行排序
Collections.sort(list, new Comparator<Map.Entry<Integer, String>>() {
@Override
public int compare(Map.Entry<Integer, String> o1, Map.Entry<Integer, String> o2) {
return o1.getKey().compareTo(o2.getKey());
}
});
// 将排序好的List转换为一个新的HashMap
LinkedHashMap<Integer, String> sortedHashMap = new LinkedHashMap<>();
for (Map.Entry<Integer, String> entry : list) {
sortedHashMap.put(entry.getKey(), entry.getValue());
}
System.out.println("排序后的HashMap:" + sortedHashMap);
}
}
```
代码解释:
1. 首先创建一个HashMap并添加数据。
2. 将HashMap转换为List,这里使用了HashMap的entrySet()方法,将HashMap的每个键值对转换为一个Map.Entry对象,再将这些Entry对象放入List中。
3. 对List进行排序,这里使用了Collections.sort()方法,传入一个Comparator对象,指定按照HashMap的键(即Entry的Key)进行排序。
4. 将排序好的List转换为一个新的HashMap,这里使用了LinkedHashMap,它是HashMap的子类,能够保持插入顺序。
5. 输出原始HashMap和排序后的HashMap,可看到排序后的HashMap已经按照键值从小到大排序了。
希望这个代码能够帮助到你!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)