集合A List<VisitSaleProblem> 中有 id字段,集合B List<String> 如何使用Java8进行判断 B中的是数据是否和集合A中的id字段相匹配
时间: 2024-03-14 09:45:36 浏览: 109
Java8 Stream对两个 List 遍历匹配数据的优化处理操作
3星 · 编辑精心推荐
可以使用Java8的Stream API来实现这个功能,具体实现步骤如下:
1. 将集合A中的VisitSaleProblem对象的id字段提取出来,使用Collectors.toSet()方法将其转换成Set集合。
```java
Set<Integer> idSet = listA.stream().map(VisitSaleProblem::getId).collect(Collectors.toSet());
```
2. 使用Stream的allMatch方法判断集合B中的每个元素是否都能在集合A中找到相应的VisitSaleProblem对象。
```java
boolean allMatch = listB.stream().allMatch(idSet::contains);
```
其中,allMatch方法会对集合B中的每个元素调用idSet::contains方法进行判断,如果所有元素都能在集合A中找到相应的VisitSaleProblem对象,则allMatch方法返回true,否则返回false。
完整实现代码如下:
```java
Set<Integer> idSet = listA.stream().map(VisitSaleProblem::getId).collect(Collectors.toSet());
boolean allMatch = listB.stream().allMatch(idSet::contains);
```
阅读全文