使用stream流对List<Map<String,Object>>进行排序
时间: 2023-10-14 08:05:53 浏览: 166
可以使用Java 8中的流(Stream)来对List<Map<String,Object>>进行排序。下面是一个示例代码:
```
List<Map<String, Object>> list = new ArrayList<>();
// 假设list中已经有了需要排序的数据
List<Map<String, Object>> sortedList = list.stream()
.sorted(Comparator.comparing((Map<String, Object> m) -> m.get("key1"))
.thenComparing(m -> m.get("key2")))
.collect(Collectors.toList());
```
其中,`Comparator.comparing`方法可以用于指定排序的键值,`thenComparing`方法用于指定当第一个键值相同时的次要排序规则。
如果需要进行反向排序,可以在`comparing`和`thenComparing`方法中使用`Comparator.reverseOrder()`方法来创建反向排序的比较器,例如:
```
List<Map<String, Object>> sortedList = list.stream()
.sorted(Comparator.comparing((Map<String, Object> m) -> m.get("key1"), Comparator.reverseOrder())
.thenComparing(Comparator.comparing(m -> m.get("key2"), Comparator.reverseOrder())))
.collect(Collectors.toList());
```
这样就可以按照指定的键值进行排序了。
阅读全文