Java List 求交集:使用 Stream 和 Lambda 表达式
在 Java 中,可以使用 stream 和 lambda 表达式来找到两个 List 的交集。以下是一个示例代码:
import java.util.ArrayList;
import java.util.List;
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);
List<Integer> intersection = list1.stream()
.filter(list2::contains)
.toList();
System.out.println(intersection); // 输出 [2, 3]
}
}
在这个示例中,我们使用了 stream() 方法将 List 转换为 Stream,然后使用 filter() 方法和 contains() 方法来过滤出 list1 中存在于 list2 中的元素。最后,我们使用 toList() 方法将结果转换为 List 类型。
请注意,要使用 toList() 方法,你需要使用 Java 16 或更高版本。如果是 Java 8 或更低版本,你可以将结果收集到一个新的 List 中,如下所示:
List<Integer> intersection = list1.stream()
.filter(list2::contains)
.collect(Collectors.toList());
原文地址: https://www.cveoy.top/t/topic/pq6V 著作权归作者所有。请勿转载和采集!