java hashmap怎么排序
时间: 2023-10-14 16:58:17 浏览: 123
可以使用以下几种方法对Java HashMap进行排序:
方法一:使用LinkedHashMap生成有序的Map。可以借助TreeSet对HashMap的key进行排序,然后再利用LinkedHashMap生成有序的Map。具体代码如下:
```
TreeSet<Integer> treeSet = new TreeSet<>(map.keySet());
Iterator<Integer> iterator = treeSet.iterator();
HashMap<Integer, Person> sortedMap = new LinkedHashMap<>();
while (iterator.hasNext()) {
int key = iterator.next();
Person value = map.get(key);
sortedMap.put(key, value);
}
System.out.println(sortedMap);
```
方法二:使用ArrayList对HashMap的key进行排序。可以将HashMap的key转换为ArrayList,然后使用Collections.sort()方法对ArrayList进行排序。具体代码如下:
```
List<Integer> mapKeys = new ArrayList<>(map.keySet());
Collections.sort(mapKeys);
System.out.println(mapKeys);
```
方法三:使用ArrayList对HashMap的value进行排序。可以将HashMap的value转换为ArrayList,然后使用Collections.sort()方法结合Comparator对ArrayList进行排序。具体代码如下:
```
List<Person> mapValues = new ArrayList<>(map.values());
Collections.sort(mapValues, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.age - o2.age;
}
});
System.out.println(mapValues);
```
另外,还可以使用List和Map.Entry结合的方式对HashMap进行排序。具体代码如下:
```
List<Map.Entry<String, Integer>> list = new ArrayList<>(phone.entrySet());
list.sort(new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
```
以上是几种常用的对Java HashMap进行排序的方法。具体选择哪种方法取决于你的需求和实际情况。
#### 引用[.reference_title]
- *1* [Java中对HashMap进行排序](https://blog.csdn.net/qq_41101966/article/details/128294032)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [java hashmap排序的2种方式](https://blog.csdn.net/zhjtzwx/article/details/100526841)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文