java 8 两个list取交集
时间: 2023-06-02 12:06:39 浏览: 77
可以使用Java 8的Stream API来取两个List的交集,示例代码如下:
```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); // Output: [B, C]
```
上述代码首先创建了两个List,然后使用流式操作(stream)对list1进行过滤,只保留在list2中也存在的元素,最后通过collect方法将结果转换成List并输出。
相关问题
java8两个对象list取交集
可以使用Java 8中的Stream API和filter()方法来实现两个对象列表的交集。以下是一个示例代码:
```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]`
首先,我们使用`stream()`方法将第一个列表转换为一个流。然后,我们使用`filter()`方法和`::`符号将第二个列表作为参数传递给`contains()`方法,以过滤出与第二个列表相交的元素。最后,我们使用`collect()`方法将结果收集到一个新的列表中。
java语言两个List取交集
在 Java 中,你可以使用 Collection 类中的 retainAll() 方法来获取两个列表的交集。这个方法会修改调用它的列表,使其只包含两个列表中都存在的元素。
以下是示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
list1.add(5);
List<Integer> list2 = new ArrayList<Integer>();
list2.add(3);
list2.add(4);
list2.add(5);
list2.add(6);
list2.add(7);
list1.retainAll(list2);
System.out.println(list1); // 输出 [3, 4, 5]
}
}
```
在这个例子中,我们首先创建了两个列表 list1 和 list2,然后使用 add() 方法向它们中添加元素。接着,我们调用 list1 的 retainAll() 方法,并将 list2 作为参数传递给它。最后,我们打印出 list1,即它们的交集。