stream流过滤出指定字段
时间: 2023-07-08 19:26:58 浏览: 355
您可以使用Java 8中的流(Stream)和lambda表达式进行流处理,使用map()方法进行流中元素的转换,使用filter()方法过滤流中的元素,以过滤出指定字段为例,代码如下:
```
List<Person> personList = new ArrayList<>();
// 假设Person对象有name和age两个字段
List<String> nameList = personList.stream()
.filter(p -> p.getAge() > 18) // 过滤出年龄大于18岁的Person对象
.map(Person::getName) // 将Person对象转换成name字段
.collect(Collectors.toList()); // 将name字段收集到一个List中
```
以上代码可以过滤出年龄大于18岁的Person对象,并将这些对象的name字段收集到一个List中。您可以根据自己的实际需求进行修改。
相关问题
mybatisplus将查询出来的list用stream流过滤出其中的name字段,得到一个name的list
好的,可以通过以下代码来实现:
```
List<Entity> entityList = mapper.selectList(null);
List<String> nameList = entityList.stream().map(Entity::getName).collect(Collectors.toList());
```
其中,`Entity`为实体类名,`getName()`为获取实体类中name字段的方法。`mapper`为MyBatisPlus中的Mapper对象,`selectList(null)`通过传入null作为查询条件,实现查询所有数据的操作。最后,通过`stream()`将List转为Stream,使用`map()`将每个实体类对象转为对应的name属性值,再使用`collect(Collectors.toList())`将Stream转为List即可。
阅读全文