使用stream流对List<Map<String,Object>>进行排序
时间: 2023-10-14 12:17:11 浏览: 89
可以使用Java 8中的Stream API来对List<Map<String, Object>>进行排序。下面是一个示例代码:
```java
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("id", 1);
map1.put("name", "John");
map1.put("age", 25);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("id", 2);
map2.put("name", "Mary");
map2.put("age", 30);
list.add(map2);
// 按照年龄升序排序
List<Map<String, Object>> sortedList = list.stream()
.sorted(Comparator.comparingInt(map -> (int) map.get("age")))
.collect(Collectors.toList());
```
在上面的示例中,我们首先创建了一个List<Map<String, Object>>,其中包含两个Map对象。然后,我们使用Stream API的sorted()方法来对列表进行排序,使用Comparator.comparingInt()方法指定按照"age"字段升序排序。最后,使用collect()方法将排序后的结果收集到一个新的List中。
需要注意的是,上面的示例中使用了类型转换`(int) map.get("age")`,因为Map中的值都是Object类型,需要进行强制类型转换。如果Map中的值是其他类型,需要相应地更改排序方法。
阅读全文