java中两个List合并,相同元素剔除的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中两个List合并,相同元素剔除的问题相关的知识,希望对你有一定的参考价值。

两个集合,List<Stu> list1,List<Stu> list2,Stu中两个属性分别为name和desc,list1中两个对象属性值分别是stu1,学生;stu2,学生。list2中两个元素属性值分别是stu2,班长;stu3,学生,现在想把两个集合合并为一个,name相同的合并,结果要变成三个元素,stu1,学生;stu2,班长学生;stu3,学生。name属性值相同的,desc属性值相加,请高手赐教!感激不尽!

参考技术A Map<String,Stu> stus = new HashMap<String,Stu>();
for (Stu stu : list1)
if (stus.containsKey(stu.getName()))
Stu temp = stus.get(stu.getName());
temp.setDesc(temp.getDesc()+stu.getDesc());
stus.put(stu.getName(),temp);
else
stus.put(stu.getName(), stu);

for (Stu stu : list2)
if (stus.containsKey(stu.getName()))
Stu temp = stus.get(stu.getName());
temp.setDesc(temp.getDesc()+stu.getDesc());
stus.put(stu.getName(),temp);
else
stus.put(stu.getName(), stu);

//最后这个Map的valueSet就是你要得到的所有结果,
List<Stu> result = new ArrayList<Stu>();
result.addAll(stus.values());
本回答被提问者采纳

以上是关于java中两个List合并,相同元素剔除的问题的主要内容,如果未能解决你的问题,请参考以下文章

JAVA,用List做,两个数组中数的合并和去除相同元素

合并两个相同长度的Scala列表,同一个索引的元素成为一个元素

python两个长度相等的list元素合并?

java怎么比较两个list是不是相同?

java 怎么比较两个list是不是相同

java怎么比较两个list是不是相同?