java list 合并去重复_java 实现多个list 合并成一个去掉重复的案例
java 實現(xiàn)多個list 合并成一個去掉重復(fù)的案例,我就,說了,不多,給大家,代碼
java 實現(xiàn)多個list 合并成一個去掉重復(fù)的案例
易采站長站,站長之家為您整理了java 實現(xiàn)多個list 合并成一個去掉重復(fù)的案例的相關(guān)內(nèi)容。
我就廢話不多說了,大家還是直接看代碼吧~
public static void main(String[] args){
List list1 = new ArrayList();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
List list2 = new ArrayList();
list2.add(1);
list2.add(4);
list2.add(7);
list2.add(10);
List listAll = new ArrayList();
listAll.addAll(list1);
listAll.addAll(list2);
listAll = new ArrayList(new LinkedHashSet<>(listAll));
System.out.println(listAll);
}
輸出:
[1, 2, 3, 4, 7, 10]
代碼要典:
1、合并 使用java.util.List.addAll(Collection extends Integer>)
2、去重,借助LinkedHashSet
補充知識:java8 lambda小試牛刀,利用Stream把list轉(zhuǎn)map,并將兩個list的數(shù)據(jù)對象合并起來
我就廢話不多說了,大家還是直接看代碼吧~
public static void main(String[] args) {
// 集合1
List lists = new ArrayList<>();
SkillUpgrade s = new SkillUpgrade();
s.setLv(1);
s.setAppearNum(100);
lists.add(s);
SkillUpgrade s2 = new SkillUpgrade();
s2.setLv(2);
s2.setAppearNum(200);
lists.add(s2);
// 集合1
List listx = new ArrayList<>();
SkillUpgrade x = new SkillUpgrade();
x.setLv(1);
x.setSelectNum(1100);
listx.add(x);
SkillUpgrade x2 = new SkillUpgrade();
x2.setLv(2);
x2.setSelectNum(1200);
listx.add(x2);
// 把list轉(zhuǎn)map,{k=lv,vaule=并為自身} . SkillUpgrade->SkillUpgrade或Function.identity()
Map map = listx.stream()
.collect(Collectors.toMap(SkillUpgrade::getLv, SkillUpgrade -> SkillUpgrade));
System.out.println("map:="+map);
// 合并
lists.forEach(n -> {
// 如果等級一致
if (map.containsKey(n.getLv())) {
SkillUpgrade obj = map.get(n.getLv());
// 把數(shù)量復(fù)制過去
n.setSelectNum(obj.getSelectNum());
}
});
System.out.println("lists:="+lists);
// 重復(fù)問題
Map keyRedo = listx.stream()
.collect(Collectors.toMap(SkillUpgrade::getLv, Function.identity(), (key1, key2) -> key2));
// 方式二:指定實例的map
Map linkedHashMap = 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]]
*/
輸出結(jié)果:
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 實現(xiàn)多個list 合并成一個去掉重復(fù)的案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持易采站長站。以上就是關(guān)于對java 實現(xiàn)多個list 合并成一個去掉重復(fù)的案例的詳細介紹。歡迎大家對java 實現(xiàn)多個list 合并成一個去掉重復(fù)的案例內(nèi)容提出寶貴意見
總結(jié)
以上是生活随笔為你收集整理的java list 合并去重复_java 实现多个list 合并成一个去掉重复的案例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟机非正常关闭 无法打开
- 下一篇: nginx设置跨域问题