如何取出Java中两个list的交集
时间: 2023-02-26 15:18:34 浏览: 110
在 Java 中可以使用 retainAll 方法来取出两个 List 的交集:
```
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(4, 5, 6, 7, 8);
list1.retainAll(list2);
System.out.println(list1);
```
这将输出 [4, 5],也就是两个 List 的交集。
相关问题
用java实现两个list交集
可以使用Java 8的Stream API来实现两个List的交集。
首先,将一个List转换成Set,这样可以使用Set的交集操作。然后,使用Stream的filter方法过滤出另一个List中存在于Set中的元素。
以下是示例代码:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class ListIntersectionExample {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("apple");
list1.add("banana");
list1.add("orange");
List<String> list2 = new ArrayList<>();
list2.add("banana");
list2.add("grape");
list2.add("watermelon");
Set<String> set = new HashSet<>(list1);
List<String> intersection = list2.stream()
.filter(set::contains)
.toList();
System.out.println(intersection); // Output: [banana]
}
}
```
java中两个list取交集
可以通过使用Java Collection中的retainAll()方法来实现。retainAll()方法将修改当前集合,使其只包含两个集合中共有的元素(交集)。示例代码如下:
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
list1.retainAll(list2); // 取两个集合的交集
System.out.println(list1); // 输出 [3, 4, 5]
阅读全文