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)
您需要使用Stream#map方法,如下所示:
List<Student> students = ...;
List<String> names = students.stream().map(Student::getName).collect(toList());
Run Code Online (Sandbox Code Playgroud)