当前位置: 首页 > 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.lryc.cn/news/547325.html

相关文章:

  • 【系统架构设计师】以数据为中心的体系结构风格
  • 通过HTML有序列表(ol/li)实现自动递增编号的完整解决方案
  • 【Python 数据结构 4.单向链表】
  • 基于 vLLM 部署 LSTM 时序预测模型的“下饭”(智能告警预测与根因分析部署)指南
  • Java多线程与高并发专题——ConcurrentHashMap 在 Java7 和 8 有何不同?
  • NL2SQL-基于Dify+阿里通义千问大模型,实现自然语音自动生产SQL语句
  • LeetCode 1328.破坏回文串:贪心
  • 计算机视觉|ViT详解:打破视觉与语言界限
  • //定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果
  • Python快捷手册
  • QT5 GPU使用
  • 如何在Spring Boot中读取JAR包内resources目录下文件
  • 《张一鸣,创业心路与算法思维》
  • SSE 和 WebSocket 的对比
  • es如何进行refresh?
  • Kubespray部署企业级高可用K8S指南
  • 【实战篇】【深度解析DeepSeek:从机器学习到深度学习的全场景落地指南】
  • 优选算法的智慧之光:滑动窗口专题(二)
  • Kylin麒麟操作系统服务部署 | NFS服务部署
  • 7.1.2 计算机网络的分类
  • Spring Cloud Alibaba 实战:轻松实现 Nacos 服务发现与动态配置管理
  • 【数据结构】LRUCache|并查集
  • 智能合约中权限管理不当
  • MariaDB Galera 原理及用例说明
  • 【RAG 篇】万字长文:向量数据库选型指南 —— Milvus 与 FAISS/Pinecone/Weaviate 等工具深度对比
  • 关于服务器cpu过高的问题排查
  • Gpt翻译完整版
  • 雷池WAF的为什么选择基于Docker
  • 美股回测:历史高频分钟数据的分享下载与策略解析20250305
  • 【文生图】windows 部署stable-diffusion-webui