java map根据value排序
时间: 2024-05-14 12:18:54 浏览: 167
Java中的Map是无序的,但是可以通过将Map中的entry放入List中,再通过对List中的entry进行排序来实现根据value排序的功能。
以下是一个示例代码,可以根据value对Map进行排序:
```java
import java.util.*;
public class SortMapByValue {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("a", 5);
map.put("b", 3);
map.put("c", 9);
map.put("d", 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);
}
}
```
输出结果为:{d=2, b=3, a=5, c=9},即根据value从小到大排序的结果。
阅读全文