我有两个集合,我想要得到泛型集合A的某一个值和泛型集合B的某一个值相同的泛型集合C,用stream实现
时间: 2024-05-06 10:17:58 浏览: 58
C_泛型集合
可以使用`filter`操作符来过滤出符合条件的元素,再将过滤出的元素收集到一个新的集合中。
假设泛型集合A和B分别为`List<T>`类型,需要比较的值为对象的某一属性`property`,则可以使用如下代码实现:
```
List<T> listA = ...;
List<T> listB = ...;
List<T> listC = listA.stream()
.filter(a -> listB.stream().anyMatch(b -> b.getProperty().equals(a.getProperty())))
.collect(Collectors.toList());
```
这段代码会遍历泛型集合A,对于每个元素a,过滤条件为在泛型集合B中是否存在一个元素b,使得b的`property`属性与a的相同。如果存在,将元素a加入到新的泛型集合C中。
阅读全文