ITPub博客

首页 > 数据库 > 国内数据库 > java 查找两个集合的交集部分数据

java 查找两个集合的交集部分数据

国内数据库 作者:jzw520 时间:2025-03-07 12:13:26 0 删除 编辑

利用了Java 8的Stream API,代码简洁且效率高


import java.util.stream.Collectors;
import java.util.List;
import java.util.HashSet;
import java.util.Set;
 
public class ListIntersection {
 
    public static List<Long> findIntersection(List<Long> list1, List<Long> list2) {
        Set<Long> set2 = new HashSet<>(list2);
        return list1.stream()
                    .filter(set2::contains)
                    .collect(Collectors.toList());
    }
 
    public static void main(String[] args) {
        List<Long> list1 = List.of(1L, 3L, 5L, 7L, 9L);
        List<Long> list2 = List.of(3L, 6L, 9L, 12L);
        
        List<Long> intersection = findIntersection(list1, list2);
        System.out.println("交集结果: " + intersection);
    }
}



步骤解释:


转换为集合:将第二个列表 list2 转换为一个 Set,以便快速查找元素是否存在。

流过滤:使用 stream() 方法将第一个列表转换为一个流,并使用 filter() 方法筛选出在集合中包含的元素。

收集结果:通过 collect(Collectors.toList()) 将筛选后的流收集到一个新的列表中,即为两个列表的交集。

这种方法的时间复杂度为 O(n + m),其中 n 和 m 分别是两个列表的长度,适合处理较大的数据集。



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70005285/viewspace-3075109/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2021-08-14

  • 博文量
    10
  • 访问量
    11918