【发布时间】:2019-10-03 15:32:25
【问题描述】:
我已尝试解决问题,但被卡住了。我有班级用户:
public class User {
public String name;
public String email;
public Integer age;
public String group;
public User() {
}
public User(String name, String email, Integer age, String group) {
this.name = name;
this.email = email;
this.age = age;
this.group = group;
}
}
用户列表如下:
List<User> users = new ArrayList<>();
users.add(new User("Max" , "test@test", 20 , "n1"));
users.add(new User("John" , "list@test", 21 , "n2"));
users.add(new User("Nancy" , "must@test", 22 , "n3"));
users.add(new User("Nancy" , "must@test", 22 , "n4"));
users.add(new User("Max" , "test@test", 20 , "n5"));
但此列表包含重复对象,仅在组中存在差异。所以我需要将重复的对象组合成新的对象看起来像:
用户:姓名:“Max”,电子邮件:“test@test”,年龄:20,组:“n1, n5”
用户:姓名:“John”,电子邮件:“list@test”,年龄:21,组:“n2”
用户:姓名:“Nancy”,电子邮件:“must@test”,年龄:22,组:“n3, n4”
我知道我需要使用 Java 8 中的 Steam,但不知道具体如何使用。
请帮忙
【问题讨论】:
-
到目前为止你尝试了什么?
-
我真的不认为 Streams 会在这里为您提供帮助。您的 Java 水平如何:您可以使用伪代码并自己实现它吗?您想要一个完整的解决方案吗?
-
预期输出与给定描述不匹配。请edit帖子并更正它,以便更好地帮助您。另请参阅@Zabuza 的评论。图片不如实际代码有用。
-
我建议为您的用户对象添加一个
id字段,以便轻松识别唯一用户。
标签: java list collections java-8 java-stream