在 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录