当前位置: 首页 > news >正文

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

利用了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);}
}

步骤解释:

  1. 转换为集合:将第二个列表 list2 转换为一个 Set,以便快速查找元素是否存在。
  2. 流过滤:使用 stream() 方法将第一个列表转换为一个流,并使用 filter() 方法筛选出在集合中包含的元素。
  3. 收集结果:通过 collect(Collectors.toList()) 将筛选后的流收集到一个新的列表中,即为两个列表的交集。

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


http://www.mrgr.cn/news/93293.html

相关文章:

  • 随机树算法 自动驾驶汽车的路径规划 静态障碍物(Matlab)
  • Qt:事件
  • NUMA架构介绍
  • vulnhub靶场之【digitalworld.local系列】的mercy靶机
  • 深度学习五大模型:CNN、Transformer、BERT、RNN、GAN详细解析
  • 【Embedding】何为Embedding?
  • tomcat的安装与配置(包含在idea中配置tomcat)
  • [mybatis]resultMap详解
  • TrustRAG:通过配置化模块化的检索增强生成(RAG)框架提高生成结果的可靠性和可追溯性
  • 前端权限流程(基于rbac实现思想)
  • 数据结构基础之《(19)—矩阵处理》
  • conda环境搭建记录
  • C++ 测试案例
  • TypeScript(正在修改)
  • 【ORACLE】ORACLE19C在19.13版本前的一个严重BUG-24761824
  • HRNet的pt模型转rknn并实现前向推理
  • 【项目日记(八)】内存回收与联调
  • 并查集—数组实现
  • 全局异常处理器为什么不能处理过滤器异常,有那些解决方案
  • FLEXOO的传感器技术:从材料选择到生产工艺的全方位创新