java8实现List集合, a集合种有而b集合中没有的数据,集合中根据ID判断有没有...
时间: 2024-03-09 13:44:57 浏览: 97
可以使用Java 8的Stream API和Lambda表达式实现该功能。具体实现方式如下:
```java
List<Data> a = Arrays.asList(new Data(1, "A"), new Data(2, "B"), new Data(3, "C"));
List<Data> b = Arrays.asList(new Data(2, "B"), new Data(4, "D"), new Data(5, "E"));
List<Data> result = a.stream()
.filter(dataA -> b.stream()
.noneMatch(dataB -> dataB.getId() == dataA.getId()))
.collect(Collectors.toList());
```
这段代码中,我们首先定义了两个List集合a和b,每个元素都是一个Data对象,Data对象包含一个id和一个name属性。然后,我们使用Java 8的Stream API和Lambda表达式对集合a进行过滤,只保留那些在集合b中没有对应元素的Data对象。这里使用了noneMatch方法,判断集合b中是否有任何一个元素的id与集合a中的元素id相同。最后,我们将过滤后的结果收集到一个新的List集合中。
需要注意的是,这里使用了自定义的Data类,需要在代码中定义该类并实现getId方法,以便在Lambda表达式中使用。
阅读全文