java8取出两个集合的交集
时间: 2023-12-05 17:30:04 浏览: 31
你可以使用Java 8中的stream API来取出两个集合的交集,这里给出一个示例代码:
```java
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
List<Integer> intersection = list1.stream()
.filter(list2::contains)
.collect(Collectors.toList());
System.out.println(intersection); // 输出 [3, 4, 5]
```
在这个示例中,我们将两个集合转换为Java中的List对象,并使用Java 8中的stream API来遍历第一个集合list1,然后使用filter方法过滤出list2中包含的元素,最后使用collect方法将结果收集到一个新的List对象中。
相关问题
java8两个集合取交集
可以使用Java 8的Stream API来实现两个集合取交集,具体方法如下:
```
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
List<Integer> intersection = list1.stream()
.filter(list2::contains)
.collect(Collectors.toList());
System.out.println(intersection); // 输出 [3, 4, 5]
```
首先将第一个集合转换为Stream,然后过滤出第二个集合中也包含的元素,最后将结果收集到一个新的List中。
java8里两个集合中获取交集
在Java 8中,可以使用stream API来获取两个集合的交集。具体的实现方式如下:
```java
List<String> list1 = Arrays.asList("A", "B", "C");
List<String> list2 = Arrays.asList("B", "C", "D");
List<String> intersection = list1.stream()
.filter(list2::contains)
.collect(Collectors.toList());
System.out.println(intersection); // 输出 [B, C]
```
上述代码中,我们首先将两个集合转换为List对象,然后使用stream()方法获取一个Stream对象。接着,我们调用filter()方法并传入一个lambda表达式,该表达式用于判断list2中是否包含当前元素,如果包含,则将该元素添加到新的List对象中。最后,我们使用collect()方法将Stream对象转换为List对象并输出结果。
注意:在实际开发中,我们可能需要对集合中的元素进行去重操作,可以使用distinct()方法来实现。