移除两个相同List对象
Oliver Deng 人气:1Java8 移除两个相同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());//新的不在原有里面的
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容