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()))

你可能感兴趣的:(JAVA8 移除两个相同的List对象)