java取两个List的交集
时间: 2024-10-09 15:13:38 浏览: 51
在Java中,可以使用集合框架提供的`intersects()`方法或自定义算法来获取两个List的交集。以下是两种常见的方式:
1. 使用Set和retainAll()方法:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public List<String> findIntersection(List<String> list1, List<String> list2) {
HashSet<String> set1 = new HashSet<>(list1);
set1.retainAll(list2); // 保留set1中list2中存在的元素
return new ArrayList<>(set1); // 将结果转换回List
}
// 示例
List<String> list1 = Arrays.asList("a", "b", "c", "d");
List<String> list2 = Arrays.asList("c", "d", "e", "f");
List<String> intersection = findIntersection(list1, list2);
System.out.println(intersection); // 输出 ["c", "d"]
```
2. 自定义遍历算法:
```java
public List<String> intersectLists(List<String> list1, List<String> list2) {
List<String> result = new ArrayList<>();
for (String element : list1) {
if (list2.contains(element)) { // 检查元素是否在list2中
result.add(element);
}
}
return result;
}
```
阅读全文