Java8 如何移除两个相同的List对象
作者:Oliver Deng
这篇文章主要介绍了Java8 如何移除两个相同的List对象,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Java8 移除两个相同List对象
List<Data> data1 = new ArrayList<>(); data1.add(new Data(7, 15)); data1.add(new Data(2, 17)); data1.add(new Data(2, 17)); List<Data> data2 = new ArrayList<>(); data2.add(new Data(1, 11)); data2.add(new Data(10, 9)); data2.add(new Data(10, 9)); data2.add(new Data(7, 15)); data2.add(new Data(2, 17)); data2.add(new Data(2, 17)); List<Data> result = data2.stream() .filter(d1 -> data1.stream() .noneMatch(d2 -> Objects.equals(d1.getId(), d2.getId())) ).collect(Collectors.toList()); System.out.println(result);
结果:
如果多个条件
.noneMatch(d2 -> Objects.equals(d1.getId(), d2.getId()) && Objects.equals(d1.getId(), d2.getId()))
筛选出List不被另一个List包含的元素
List<String> delTagGroup = new ArrayList<>();//需要删除的 List<String> originGroupId = qwTagGroupEntityList.stream().map(QwTagGroupEntity::getGroupId).collect(Collectors.toList());//原有的 List<String> newGroupId = corpTagList.getTag_group().stream().map(CorpTagList.TagGroupBean::getGroup_id).collect(Collectors.toList());//新的 delTagGroup = originGroupId.stream().filter(o->!newGroupId.contains(o)).collect(Collectors.toList());//新的不在原有里面的
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。