List<Map<String, Object>>怎么用流排序
时间: 2023-10-14 11:16:48 浏览: 98
你可以使用 Java 8 的 Stream API 来对 `List<Map<String, Object>>` 进行排序。以下是一个示例代码:
```java
List<Map<String, Object>> list = new ArrayList<>();
// 添加数据到列表中
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "Alice");
map1.put("age", 25);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Bob");
map2.put("age", 30);
list.add(map2);
Map<String, Object> map3 = new HashMap<>();
map3.put("name", "Charlie");
map3.put("age", 20);
list.add(map3);
// 按照 age 字段进行升序排序
List<Map<String, Object>> sortedList = list.stream()
.sorted(Comparator.comparingInt(m -> (int) m.get("age")))
.collect(Collectors.toList());
// 输出排序后的结果
sortedList.forEach(System.out::println);
```
输出结果:
```
{name=Alice, age=25}
{name=Charlie, age=20}
{name=Bob, age=30}
```
在上面的代码中,我们使用 `list.stream()` 将列表转换为一个流,然后使用 `sorted()` 方法对流进行排序。在 `sorted()` 方法中,我们使用 `Comparator.comparingInt()` 方法指定按照 `age` 字段进行排序,由小到大。最后,我们使用 `collect(Collectors.toList())` 将排序后的流转换为一个列表,保存到 `sortedList` 中。
阅读全文