软件编程
位置:首页>> 软件编程>> java编程>> Java8 如何移除两个相同的List对象

Java8 如何移除两个相同的List对象

作者:Oliver  发布时间:2023-06-07 20:57:50 

标签: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);

结果:

Java8 如何移除两个相同的List对象

如果多个条件

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

来源:https://blog.csdn.net/weixin_44073321/article/details/106019381

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com