List<Map<String, Object>>根据stream流排序
时间: 2023-10-24 22:32:11 浏览: 150
要根据stream流排序List<Map<String, Object>>,可以使用`Comparator`和`Collectors`类来实现。下面是一个示例代码:
```java
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Map<String, Object>> list = getList(); // 获取原始的List<Map<String, Object>>
List<Map<String, Object>> sortedList = list.stream()
.sorted(Comparator.comparing(map -> (Integer) map.get("key"))) // 根据 "key" 字段进行排序
.collect(Collectors.toList());
System.out.println(sortedList);
}
private static List<Map<String, Object>> getList() {
// 返回一个包含多个Map对象的List
return List.of(
Map.of("key", 3, "value", "C"),
Map.of("key", 1, "value", "A"),
Map.of("key", 2, "value", "B")
);
}
}
```
在上面的示例中,我们使用`sorted`方法和一个自定义的`Comparator`来根据Map中的 "key" 字段进行排序。最后,使用`collect`方法将排序后的Stream转换回List。输出结果为:
```
[{key=1, value=A}, {key=2, value=B}, {key=3, value=C}]
```
这样,你就可以根据stream流对List<Map<String, Object>>进行排序了。
阅读全文