【发布时间】:2019-08-08 15:26:57
【问题描述】:
我有以下问题。我熟悉使用 java 7 执行以下操作的传统方法,但尝试使用 java8 流或 forEach 来完成此操作以获得更好的可读性和更少的代码行。
对象:
public class Object {
private String id;
private String userName;
private String address;
private String email;
//getters and setters
}
现在,我有一个对象列表,如下所示:
List<Object> list = new ArrayList<>();
Object obj = new Object();
obj.setId(12);
obj.setUserName("myName");
obj.setAddress("address");
obj.setEmail("email");
Object obj1 = new Object();
obj1.setId(12);
obj1.setUserName("myName1");
obj1.setAddress("address1");
obj1.setEmail("email1");
list.add(obj);
list.add(obj1);
我有另一个对象用户:
public class User {
private String userName;
private String address;
private String email;
//getters and setters
}
结果对象:
public class ResultObject{
private String id;
private List<User> user;
//getters and setters
}
现在对于列表中的每个对象,我想按 id 对它们进行分组,并将相应的电子邮件、地址和用户名保存在用户对象中,最后想要一个 id 映射到同一 ID 下的用户列表的列表。
所以上面示例的 ResultObject 应该是这样的:
id=12
List<User> = {["myname","address","email"],["myname1","address1","email1"]}
任何想法都值得赞赏。 TIA。
【问题讨论】:
标签: java foreach java-8 java-stream