java8 lamada表达式过滤提取出List<Map<String, Object>> 中type为ipc的list并按照rank倒叙排序
时间: 2023-11-11 09:29:20 浏览: 141
Java8 用Lambda表达式给List集合排序的实现
可以使用Java8的Stream API和Lambda表达式来实现该功能,示例代码如下:
```
List<Map<String, Object>> list = new ArrayList<>();
// 假设list已经被初始化并填充了数据
List<Map<String, Object>> ipcList = list.stream()
.filter(map -> "ipc".equals(map.get("type")))
.sorted((map1, map2) -> (int) map2.get("rank") - (int) map1.get("rank"))
.collect(Collectors.toList());
```
解释一下代码的逻辑:
1. 使用`stream()`方法将`List`对象转换成流对象。
2. 使用`filter()`方法过滤出`type`属性为`ipc`的`Map`对象。
3. 使用`sorted()`方法按照`rank`属性倒序排序`Map`对象。
4. 使用`collect()`方法将排序后的结果收集起来,并转换为`List`对象。
最终,`ipcList`中就只包含了`type`为`ipc`的`Map`对象,并且按照`rank`属性倒序排列了。
阅读全文