steam获取集合指定的两个值
时间: 2024-03-17 11:46:42 浏览: 126
如果想要从一个集合中获取指定的两个属性值,可以使用 Java 8 中的 Stream API 中的 `map()` 方法。例如,假设有一个包含学生姓名和年龄的集合,要获取所有学生的姓名和年龄,代码可以如下所示:
```java
List<Student> students = Arrays.asList(
new Student("Tom", 18),
new Student("Jerry", 20),
new Student("Mike", 19)
);
List<String> names = students.stream()
.map(Student::getName) // 获取姓名
.collect(Collectors.toList());
List<Integer> ages = students.stream()
.map(Student::getAge) // 获取年龄
.collect(Collectors.toList());
```
其中,`Student` 是一个包含姓名和年龄字段的类,代码如下所示:
```java
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
通过 `map()` 方法可以将一个 `Stream` 中的元素映射为另一个类型,然后通过 `collect()` 将所有的映射结果收集到一个新的集合中。在上面的代码中,通过 `Student::getName` 和 `Student::getAge` 分别获取了所有学生的姓名和年龄,然后通过 `collect(Collectors.toList())` 将它们分别收集到一个新的集合中。
阅读全文