亲宝软件园·资讯

展开

移除两个相同List对象

Oliver Deng 人气:1

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

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

加载全部内容

相关教程
猜你喜欢
用户评论