java list stream 获取对象某个值
时间: 2023-09-11 18:08:42 浏览: 143
如果你想从一个对象列表中获取某个属性值,可以使用Java 8中的Stream API来实现。假设你有一个Person类的列表,你想获取所有人的姓名,可以这样做:
```
List<Person> persons = ... // 假设这里有一个Person对象列表
List<String> names = persons.stream()
.map(Person::getName) // 将每个Person对象映射到其姓名属性
.collect(Collectors.toList()); // 将所有姓名收集到一个列表中
```
在这个例子中,我们使用了Stream的map()方法将每个Person对象映射到其姓名属性,然后使用collect()方法将所有姓名收集到一个列表中。这里的Person::getName是一个方法引用,它等价于使用lambda表达式 person -> person.getName()。
如果你只想获取符合某个条件的对象的某个属性值,可以在map()方法之前使用filter()方法来过滤列表中的对象。例如,假设你只想获取年龄大于18岁的人的姓名,可以这样做:
```
List<String> names = persons.stream()
.filter(person -> person.getAge() > 18) // 过滤年龄大于18岁的人
.map(Person::getName) // 将每个Person对象映射到其姓名属性
.collect(Collectors.toList()); // 将所有姓名收集到一个列表中
```
在这个例子中,我们使用了filter()方法来过滤年龄大于18岁的人,然后使用map()方法将每个符合条件的Person对象映射到其姓名属性。最后,我们使用collect()方法将所有姓名收集到一个列表中。
阅读全文