This question already has answers here:
Java - Merge objects of list given a condition
(2个答案)
去年关闭。
用户详细信息模型:
我有一个用户信息的ArrayList
我正在尝试遍历数组,以发现是否有基于
期望新的ArrayList:
这可能吗 ??
这将给您一个
(2个答案)
去年关闭。
用户详细信息模型:
private String userName;
private int userSalary;
我有一个用户信息的ArrayList
List<UserDetail> userDetails = new ArrayList<>();
UserDetail user1 = new UserDetail("Robert", 100);
UserDetail user2 = new UserDetail("John", 100);
UserDetail user3 = new UserDetail("Robert", 55);
userdetails.add(user1);
userdetails.add(user2);
userdetails.add(user3);
我正在尝试遍历数组,以发现是否有基于
userName
的重复条目,从上面的列表中,我有两个记录具有相同的用户名"Robert"
,在这种情况下,我想将userSalary
加起来并删除一个从列表中记录。期望新的ArrayList:
userName userSalary
Robert 155
John 100
这可能吗 ??
最佳答案
userDetails.stream()
.collect(Collectors.toMap(
UserDetail::getName,
Function.identity(),
(left, right) -> {
left.setSalary(left.getSalary() + right.getSalary());
return left;
}
))
.values();
这将给您一个
Collection<UserDetail>
。显然,您可以根据需要将其复制到ArrayList
中。