利用stream流将对象的多个字段放在一个集合的方法
时间: 2024-09-18 15:09:26 浏览: 76
在Java中,Stream API提供了一种方便的方式来处理集合数据并转换它们,包括从对象中提取特定字段并放入一个新的集合。假设你有一个Person类,包含name和age两个字段,你可以这样做:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
class Person {
private String name;
private int age;
// getters and setters...
}
List<String> namesAndAges = new ArrayList<Person>() {/* populate with Person objects */}
.stream()
.map(Person::getName) // 如果你想提取name
.map(String::toUpperCase) // 可能还需要进一步处理
.collect(Collectors.toList());
List<Integer> agesOnly = new ArrayList<Person>() {/* ... */}
.stream()
.map(Person::getAge)
.collect(Collectors.toList());
```
这里我们首先通过`.stream()`创建了一个流,然后使用`.map()`函数依次对每个Person对象应用`getName()`或`getAge()`方法,获取所需的字段值。最后,`.collect(Collectors.toList())`将这些中间结果收集到新的列表中。
阅读全文