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

标签 java list java-8 java-stream

我有一个用户列表 List<User> “abc”。

class User {
int id;
String name;
String address;
.....//getters and setters
}

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

class SomeClass {
String name;
String address;
........//getters and setters
}

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

最佳答案

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

关于java - 从一个列表中提取多个字段并将其保存到另一个列表或相同类型的新列表中。在 java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40214172/

相关文章:

python - 如何轻松地将元组列表中的单个元组传递给startswith函数?

java - groupingBy 到集合 Java8

用于 Java 8 java.time.Instant 的 Hibernate @Temporal

memory-leaks - 如何诊断 Java 8 元空间泄漏?

java - Proguard 不会混淆方法 getId() 和 getSerialNumber()

Coldfusion 中的 Java 方法给出了双倍正确答案

java - 流分组通过枚举类型列表

java - 如何在Java中使用ThreadLocalRandom.current().ints(int,int)来查找与特定表达式匹配的特定数字?

Python类抛出: can't convert 'list' object to str implicitl

python - 检查某些内容是否不在多个列表中 - 如何使其更优雅