/**
* 取出集合的差异
* @param list1
* @param list2
* @return 差异集
*/
public static List<Long> getDuplicateList( List<Long> list1,List<Long> list2){
Map<Long, Long> map=new HashMap<>();
List<Long> longList=list1;
List<Long> shortList=list2;
List<Long> newShortList=new ArrayList<>();
List<Long> sameList=new ArrayList<>();
if(list2.size()>=list1.size()){
longList=list2;
shortList=list1;
}
//将shortList放到map中,map的value任意数字即可
for(Long obj:shortList){
map.put(obj,(long) 0);
newShortList.add(obj);
}
//清空shortList,用于存放longList中有map中没有的数据
newShortList.clear();
Long in;
//longList中有map中没有的数据
for(Long obj:longList){
in=map.get(obj);
if(null==in){
newShortList.add(obj);
}else {
sameList.add(obj);
}
}
for (Long listInfo : shortList) {
if (!isExist(listInfo,sameList)){
newShortList.add(listInfo);
}
}
return newShortList;
}
取出集合中的差异
最新推荐文章于 2021-11-08 12:22:46 发布