java map value 降序排序
时间: 2023-03-27 07:03:44 浏览: 141
可以使用Java中的Collections.sort()方法和Comparator接口来对Map的value进行降序排序。具体实现可以参考以下代码:
Map<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("A", 10);
map.put("B", 5);
map.put("C", 20);
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 o2.getValue().compareTo(o1.getValue());
}
});
for (Map.Entry<String, Integer> entry : list) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
相关问题
Java根据map的value降序排序
下面是Java根据map的value降序排序的示例代码:
```java
// 创建一个Map对象
Map<String, Integer> map = new HashMap<>();
map.put("A", 10);
map.put("B", 5);
map.put("C", 8);
map.put("D", 3);
// 将Map转换为List
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
// 使用Collections.sort方法对List进行排序
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
// 根据value降序排序
return o2.getValue().compareTo(o1.getValue());
}
});
// 遍历排好序的List
for (Map.Entry<String, Integer> entry : list) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
```
输出结果:
```
A: 10
C: 8
B: 5
D: 3
```
java list降序排序_将List<Map<String, Object>>排序,升序、降序
要对 `List<Map<String, Object>>` 进行排序,可以使用 `Collections.sort()` 方法结合自定义的 `Comparator` 实现。
以下是对 List<Map<String, Object>> 进行升序排序的示例代码:
```java
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
// 添加数据到 list 中
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
// 获取两个 Map 中需要比较的字段值
Object value1 = o1.get("key");
Object value2 = o2.get("key");
// 进行比较并返回结果,这里假设需要按照字符串类型进行比较
return ((String) value1).compareTo((String) value2);
}
});
```
如果需要进行降序排序,则只需将比较结果取反即可:
```java
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
Object value1 = o1.get("key");
Object value2 = o2.get("key");
return -((String) value1).compareTo((String) value2);
}
});
```
其中,`key` 表示需要比较的字段名,可以根据实际情况进行修改。同时,也可以根据需要改变比较的类型,比如按照数字大小进行比较等。
阅读全文