从一个列表中提取多个字段并将其保存到另一个列表或相同类型的新列表.在java 8中

Sud*_*kya 2 java list java-8 java-stream

我有一个用户List<User>"abc" 的列表.

class User {
int id;
String name;
String address;
.....//getters and setters
}
Run Code Online (Sandbox Code Playgroud)

我只需要从中提取名称和地址List<User>并保存到另一个新的列表对象List<User>"xyz".或者一些新的列表,它有两个字符串字段的名称和地址.例如:

class SomeClass {
String name;
String address;
........//getters and setters
}
Run Code Online (Sandbox Code Playgroud)

我知道可以通过迭代原始列表并保存到另一个新列表对象来完成.但我想知道如何Java 8更有效地完成它.通过使用streams(),map()...等使用默认构造函数.

kjs*_*ian 5

List<SomeClass> list = users.stream()
                            .map(user -> new SomeClass(user.getName(), user.getAddress()))
                            .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)