Java Stream 返回某个属性的 List 实现步骤
1. 理解需求
在开始编写代码之前,我们首先需要理解需求。要返回某个属性的 List,我们需要从一个对象列表中提取出指定的属性,并将其组成一个新的 List 返回。
2. 准备数据
为了演示代码的实现,我们需要先准备一些数据。假设我们有一个 Student 类,包含 id、name 和 age 三个属性。我们的目标是从一个 Student 列表中提取出所有的 name 属性。
我们可以定义如下的 Student 类:
public class Student {
private int id;
private String name;
private int age;
// 构造函数和 getter、setter 方法省略
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
然后我们可以创建一个包含多个 Student 对象的列表:
List<Student> studentList = new ArrayList<>();
studentList.add(new Student(1, "Alice", 18));
studentList.add(new Student(2, "Bob", 20));
studentList.add(new Student(3, "Charlie", 22));
3. 使用 Java Stream 提取属性并返回 List
接下来,我们可以使用 Java Stream 来提取属性并返回 List。下面是实现这一步骤的代码:
List<String> nameList = studentList.stream()
.map(Student::getName) // 使用 map 方法提取 name 属性
.collect(Collectors.toList()); // 使用 collect 方法将提取的属性组成新的 List
在上述代码中,我们首先将 studentList 转换为 Stream 对象,然后使用 map 方法接收一个 lambda 表达式,该表达式指定要提取的属性。在这里,我们使用了方法引用 Student::getName
来提取 name 属性。
接下来,我们使用 collect 方法来将提取的属性组成新的 List。在这里,我们使用了 Collectors.toList()
方法来生成一个新的 List,其中包含了提取的 name 属性的值。
最后,我们将提取的属性保存在 nameList 中,并可以通过打印 nameList 来验证结果:
System.out.println(nameList); // 输出:[Alice, Bob, Charlie]
4. 完整代码示例
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Student> studentList = new ArrayList<>();
studentList.add(new Student(1, "Alice", 18));
studentList.add(new Student(2, "Bob", 20));
studentList.add(new Student(3, "Charlie", 22));
List<String> nameList = studentList.stream()
.map(Student::getName)
.collect(Collectors.toList());
System.out.println(nameList);
}
}
class Student {
private int id;
private String name;
private int age;
// 构造函数和 getter、setter 方法省略
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
5. 关系图
使用 mermaid 的 erDiagram 语法可以绘制 Student 类的关系图,如下所示:
erDiagram
Student {
int id
varchar name
int age
}
以上就是实现 Java Stream 返回某个属性的 List 的完整步骤。通过使用 Stream 的 map 和 collect 方法,我们能够方便地提取对象列表的指定属性,并组成一个新的 List 返回。希望这篇文章对你有帮助!