用Stream筛选两个ArrayList中的元素得到新ArrayList
时间: 2024-05-05 18:15:00 浏览: 13
假设我们有两个ArrayList,分别是list1和list2,每个ArrayList中都有一些元素。我们想要使用Stream筛选出同时在这两个ArrayList中存在的元素,并将它们添加到一个新的ArrayList中。 可以按照以下步骤进行操作:
1. 将list1和list2合并成一个ArrayList,可以使用addAll方法:
```
List<Integer> allList = new ArrayList<>();
allList.addAll(list1);
allList.addAll(list2);
```
2. 使用Stream的filter方法,筛选出在两个ArrayList中都存在的元素:
```
List<Integer> result = allList.stream()
.filter(i -> list1.contains(i) && list2.contains(i))
.collect(Collectors.toList());
```
3. 最后,我们将得到一个新的ArrayList,其中包含在两个原始ArrayList中都存在的元素。
相关问题
写一个用stream流筛选两个集合的并集Demo
以下是一个用stream流筛选两个集合的并集的Demo:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
List<Integer> list2 = new ArrayList<>();
list2.add(3);
list2.add(4);
list2.add(5);
list2.add(6);
List<Integer> union = list1.stream()
.filter(list2::contains)
.collect(Collectors.toList());
System.out.println(union);
}
}
```
这个Demo中,我们创建了两个List,然后使用stream流筛选出它们的并集。具体来说,我们使用了filter()方法和contains()方法,filter()方法用于筛选出list1中包含在list2中的元素,contains()方法用于判断list2中是否包含某个元素。最后,我们使用collect()方法将筛选出的元素收集到一个新的List中,并输出这个List。
java8查询筛选两个列表不同的元素
你可以使用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) {
// 创建两个列表
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list2.add(3);
list2.add(4);
// 使用Stream API筛选不同的元素
List<Integer> differentElements = list1.stream()
.filter(e -> !list2.contains(e))
.collect(Collectors.toList());
// 打印结果
System.out.println("不同的元素:" + differentElements);
}
}
```
上述代码中,我们使用`filter`方法来筛选出在`list1`中存在但是在`list2`中不存在的元素,并将结果收集到一个新的列表中。最后,我们打印出不同的元素。
输出结果为:
```
不同的元素:[1]
```
这表示在`list1`中只有数字1是不同的元素,而数字2和3在`list2`中也存在。你可以根据需要修改代码来适应不同类型的列表和元素。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)