java map 值排序_Java Map 按照Value排序的实现方法
时间: 2024-02-11 18:04:36 浏览: 41
浅谈Java之Map 按值排序 (Map sort by value)
Java 中的 Map 是一种键值对存储的数据结构,其中键是唯一的,值可以重复。如果需要对 Map 中的值进行排序,可以采用以下方法:
1. 将 Map 中的键值对转换为 List,并定义一个 Comparator 对 List 中的值进行排序。
2. 使用 Collections.sort() 方法对 List 进行排序。
3. 将排序后的 List 再转换为 Map。
下面是一段示例代码:
```java
import java.util.*;
public class MapSortByValue {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("apple", 5);
map.put("banana", 3);
map.put("orange", 8);
map.put("peach", 2);
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
Map<String, Integer> sortedMap = new LinkedHashMap<>();
for (Map.Entry<String, Integer> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
System.out.println(sortedMap);
}
}
```
输出结果为:{peach=2, banana=3, apple=5, orange=8},即按照值从小到大排序的结果。
阅读全文