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