java 实现多个list 合并成一个去掉重复的案例
我就废话不多说了,大家还是直接看代码吧~
publicstaticvoidmain(String[]args){
Listlist1=newArrayList();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
Listlist2=newArrayList();
list2.add(1);
list2.add(4);
list2.add(7);
list2.add(10);
ListlistAll=newArrayList();
listAll.addAll(list1);
listAll.addAll(list2);
listAll=newArrayList(newLinkedHashSet<>(listAll));
System.out.println(listAll);
}
输出:
[1,2,3,4,7,10]
代码要典:
1、合并使用java.util.List.addAll(Collection)
2、去重,借助LinkedHashSet
补充知识:java8lambda小试牛刀,利用Stream把list转map,并将两个list的数据对象合并起来
我就废话不多说了,大家还是直接看代码吧~
publicstaticvoidmain(String[]args){
//集合1
Listlists=newArrayList<>();
SkillUpgrades=newSkillUpgrade();
s.setLv(1);
s.setAppearNum(100);
lists.add(s);
SkillUpgrades2=newSkillUpgrade();
s2.setLv(2);
s2.setAppearNum(200);
lists.add(s2);
//集合1
Listlistx=newArrayList<>();
SkillUpgradex=newSkillUpgrade();
x.setLv(1);
x.setSelectNum(1100);
listx.add(x);
SkillUpgradex2=newSkillUpgrade();
x2.setLv(2);
x2.setSelectNum(1200);
listx.add(x2);
//把list转map,{k=lv,vaule=并为自身}.SkillUpgrade->SkillUpgrade或Function.identity()
Mapmap=listx.stream()
.collect(Collectors.toMap(SkillUpgrade::getLv,SkillUpgrade->SkillUpgrade));
System.out.println("map:="+map);
//合并
lists.forEach(n->{
//如果等级一致
if(map.containsKey(n.getLv())){
SkillUpgradeobj=map.get(n.getLv());
//把数量复制过去
n.setSelectNum(obj.getSelectNum());
}
});
System.out.println("lists:="+lists);
//重复问题
MapkeyRedo=listx.stream()
.collect(Collectors.toMap(SkillUpgrade::getLv,Function.identity(),(key1,key2)->key2));
//方式二:指定实例的map
MaplinkedHashMap=listx.stream().collect(Collectors.toMap(SkillUpgrade::getLv,
SkillUpgrade->SkillUpgrade,(key1,key2)->key2,LinkedHashMap::new));
}
/**
*output:map:={1=SkillUpgrade[skillId=null,skillName=null,lv=1,persNum=null,selectNum=1100,appearNum=null],2=SkillUpgrade[skillId=null,skillName=null,lv=2,persNum=null,selectNum=1200,appearNum=null]}
*lists:=[SkillUpgrade[skillId=null,skillName=null,lv=1,persNum=null,selectNum=1100,appearNum=100],SkillUpgrade[skillId=null,skillName=null,lv=2,persNum=null,selectNum=1200,appearNum=200]]
*/
输出结果:
map:={1=SkillUpgrade[skillId=null,skillName=null,lv=1,persNum=null,selectNum=1100,appearNum=null],2=SkillUpgrade[skillId=null,skillName=null,lv=2,persNum=null,selectNum=1200,appearNum=null]}
lists:=[SkillUpgrade[skillId=null,skillName=null,lv=1,persNum=null,selectNum=1100,appearNum=100],SkillUpgrade[skillId=null,skillName=null,lv=2,persNum=null,selectNum=1200,appearNum=200]]
以上这篇java实现多个list合并成一个去掉重复的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。