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

Demo 阅读:14 2024-09-03 21:39:00 评论:0

这个问题在这里已经有了答案:





Java - Merge objects of list given a condition

(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如果需要,显然。


标签:java
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号