请使用java语言帮我实现一下功能:有一个集合A他的泛型是实体类A1,A1类里面有一个属性为A11。有一个集合B他的泛型是实体类B1,B1类里面有一个属性与A1类中的A11一致。我需要筛选出这两个集合的差集。
时间: 2024-04-29 08:23:56 浏览: 67
假设实体类A1和B1如下所示:
```java
public class A1 {
private int a11;
public A1(int a11) {
this.a11 = a11;
}
public int getA11() {
return a11;
}
public void setA11(int a11) {
this.a11 = a11;
}
}
public class B1 {
private int a11;
public B1(int a11) {
this.a11 = a11;
}
public int getA11() {
return a11;
}
public void setA11(int a11) {
this.a11 = a11;
}
}
```
可以使用Java 8的Stream API来筛选出两个集合的差集,实现代码如下:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 初始化集合A和集合B
List<A1> listA = new ArrayList<>();
listA.add(new A1(1));
listA.add(new A1(2));
listA.add(new A1(3));
List<B1> listB = new ArrayList<>();
listB.add(new B1(2));
listB.add(new B1(3));
listB.add(new B1(4));
// 筛选出差集
List<A1> diff = listA.stream()
.filter(a1 -> listB.stream()
.noneMatch(b1 -> b1.getA11() == a1.getA11()))
.collect(Collectors.toList());
// 输出差集
System.out.println("差集为:" + diff);
}
}
```
输出结果为:
```
差集为:[A1{a11=1}]
```
阅读全文