java8 两个list<bean>取交集
时间: 2024-09-10 18:22:30 浏览: 48
在Java 8中,要取得两个List<Bean>的交集,你可以利用Stream API来实现。首先,需要将两个List转换为Stream,然后使用`filter`方法配合`anyMatch`来找出两个列表中的共有元素。以下是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ListIntersectionExample {
public static void main(String[] args) {
// 假设有两个Bean类的List
List<Bean> list1 = new ArrayList<>();
List<Bean> list2 = new ArrayList<>();
// 填充数据...
// 使用Stream API取得交集
List<Bean> intersection = list1.stream()
.filter(list2::contains)
.collect(Collectors.toList());
// intersection现在包含了list1和list2的交集
}
}
class Bean {
private int id;
// 其他属性...
// 构造器、getter和setter方法...
}
```
在这个例子中,`list1.stream().filter(list2::contains)`操作会遍历list1中的所有元素,`filter`方法中的`list2::contains`是一个方法引用,它会检查list1中的每个元素是否存在于list2中。如果存在,那么这个元素就会被包含在最终的Stream结果中。最后,使用`collect(Collectors.toList())`将Stream中的元素收集到一个新的List中。
阅读全文