如何从 ArrayList 中添加和删除重复的对象?

Ram*_*ana 7 java java-8

用户详细信息模型:

private String userName;
private int userSalary;
Run Code Online (Sandbox Code Playgroud)

我有一个用户信息的 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);
Run Code Online (Sandbox Code Playgroud)

我正在尝试遍历数组并找出是否有任何重复的条目基于userName,从上面的列表中我有两条用户名相同的记录"Robert",在这种情况下,我想添加userSalary并从列表。

预期的新 ArrayList:

userName userSalary

Robert 155
John 100
Run Code Online (Sandbox Code Playgroud)

这可能吗 ??

Eug*_*ene 2

 userDetails.stream()
            .collect(Collectors.toMap(
                        UserDetail::getName,
                        Function.identity(),
                        (left, right) -> {
                            left.setSalary(left.getSalary() + right.getSalary());
                            return left;
                        }
                    ))
            .values();
Run Code Online (Sandbox Code Playgroud)

这会给你一个Collection<UserDetail>. ArrayList显然,如果需要,您可以将其复制到 a 中。