我有一个List<Map<String,Object>结构,给我写一个静态方法,入参一个list,list里是指定的key和排序类型asc,desc。输出排序好的list
时间: 2024-02-05 10:12:27 浏览: 17
可以使用Java 8的Stream API来实现:
```java
import java.util.Comparator;
import java.util.List;
import java.util.Map;
public class SortUtils {
public static List<Map<String, Object>> sort(List<Map<String, Object>> list, String key, String order) {
Comparator<Map<String, Object>> comparator = Comparator.comparing(m -> m.get(key).toString());
if (order.equalsIgnoreCase("desc")) {
comparator = comparator.reversed();
}
return list.stream().sorted(comparator).toList();
}
}
```
这个方法使用了Java 8的新特性,首先将List转换成Stream,然后使用Comparator来指定排序方式。其中,Comparator.comparing(m -> m.get(key).toString())表示按照Map中指定的key进行排序,如果是字符串类型,则按照字符串的字典序进行排序。如果需要降序排序,则使用comparator.reversed()方法。最后使用toList()方法将Stream转换回List。