使用Streams Java从对象列表中获取成员列表

use*_*563 1 java list object java-stream

我有一个包含两个成员的类,以及该类的对象列表。现在,我想从对象列表中提取成员列表。

例如:

class student {
      int Id;
      String studentName;
}
Run Code Online (Sandbox Code Playgroud)

现在,我需要从学生列表中检索一个StudentName列表。java8 Streams如何做到这一点?

不使用流的解决方案:

List<student> studentList;
List<String> nameList = new ArrayList<String>();
Iterator iterator = studentList.iterator();
while(iterator.hasNext()){
  nameList.add(iterator.next().getStudentName());
}
Run Code Online (Sandbox Code Playgroud)

Ant*_*iuc 5

您需要使用Stream#map方法,如下所示:

List<Student> students = ...;
List<String> names = students.stream().map(Student::getName).collect(toList());
Run Code Online (Sandbox Code Playgroud)