帮我写一个给List<map>,根据map中的某个KEY排序
时间: 2023-05-22 17:06:13 浏览: 57
您好,以下是一段 Java 代码实现:
Collections.sort(list, new Comparator<Map<String, Object>>(){
public int compare(Map<String, Object> o1, Map<String, Object> o2){
String key = "key";
Object v1 = o1.get(key);
Object v2 = o2.get(key);
if(v1 instanceof Comparable && v2 instanceof Comparable){
return ((Comparable)v1).compareTo(v2);
}else{
return 0;
}
}
});
请将 "list" 替换为您要排序的 List<map> 对象,将 "key" 替换为您要按照哪个 KEY 排序。这段代码会对 list 中的 map 进行排序,排序规则是按照每个 map 的 key 对应的值进行升序排序。
相关问题
List<Map>根据List中的每一个Map的某个key排序
您可以使用`Collections.sort`方法和自定义比较器来实现List中的Map按照指定key排序。具体步骤如下:
1. 定义一个实现`Comparator<Map>`接口的比较器类,比较器类中重写`compare`方法,实现按照指定key排序的逻辑。
```java
class MapComparator implements Comparator<Map> {
private String key;
public MapComparator(String key) {
this.key = key;
}
@Override
public int compare(Map o1, Map o2) {
Comparable v1 = (Comparable) o1.get(key);
Comparable v2 = (Comparable) o2.get(key);
return v1.compareTo(v2);
}
}
```
2. 调用`Collections.sort`方法,传入List和比较器对象,实现List中的Map按照指定key排序。
```java
List<Map> list = new ArrayList<>();
// 添加多个Map对象
Collections.sort(list, new MapComparator("key"));
```
以上代码演示了如何按照Map中的key值进行排序,您可以根据实际需求修改比较器类中的排序逻辑。
lava8 List<Map>根据List中的每一个Map的某个key排序
使用Java 8可以使用`Comparator.comparing`方法来实现List中的Map按照指定key排序,具体步骤如下:
1. 调用`Comparator.comparing`方法,传入一个Function对象,该对象表示List中每一个Map对象要按照哪个key进行排序,返回一个Comparator对象。
```java
Comparator<Map> comparator = Comparator.comparing(map -> (Comparable) map.get("key"));
```
2. 调用`List.sort`方法,传入Comparator对象,实现List中的Map按照指定key排序。
```java
List<Map> list = new ArrayList<>();
// 添加多个Map对象
list.sort(comparator);
```
以上代码演示了如何按照Map中的key值进行排序,您可以根据实际需求修改`comparator`对象中的排序逻辑。