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合并,相同元素剔除的问题的主要内容,如果未能解决你的问题,请参考以下文章