java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > 移除两个相同List对象

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());//新的不在原有里面的

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文