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

List findIntersection getUnion

List findIntersection & getUnion  求两个列表的交集和并集

package zwf;import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;/*** 列表工具类* * @author ZengWenFeng* @date 2025.04.22* @mobile 13805029595* @email 117791303@qq.com*/
public class ListUtil
{/*** 计算两个列表的交集** @param listA [1,2,3,4,5]* @param listB [ 2, 4,5,7,8]* @return listC [ 2, 4,5]*/public static List<Long> findIntersection(List<Long> listA, List<Long> listB){if (listA == null || listA.size() <= 0 || listB == null || listB.size() <= 0){return null;}List<Long> result = new ArrayList<Long>();for (Long element : listA){if (listB.contains(element)){result.add(element);}}return result;}/*** 计算两个列表的并集** @param listA [1,2,3,4,5]* @param listB [ 2, 4,5,7,8]* @return listC [1,2,3,4,5,7,8]*/public static List<Long> getUnion(List<Long> listA, List<Long> listB){if (listA == null && listB == null){return new ArrayList<Long>();}if (listA == null){return new ArrayList<Long>(new LinkedHashSet<Long>(listB));}if (listB == null){return new ArrayList<Long>(new LinkedHashSet<Long>(listA));}LinkedHashSet<Long> unionSet = new LinkedHashSet<>(listA.size() + listB.size());if (listA.size() > 0){unionSet.addAll(listA);}if (listB.size() > 0){unionSet.addAll(listB);}return new ArrayList<Long>(unionSet);}public static void main(String[] args){// 初始化列表 A 和 BList<Long> listA = new ArrayList<>();listA.add(1L);listA.add(2L);listA.add(3L);listA.add(4L);listA.add(5L);List<Long> listB = new ArrayList<>();listB.add(2L);listB.add(4L);listB.add(5L);listB.add(7L);// 计算交集List<Long> intersection = findIntersection(listA, listB);// 输出交集System.out.println("交集列表: " + intersection);// 计算并集List<Long> union = getUnion(listA, listB);// 输出并集System.out.println("并集列表: " + union);}
}

http://www.dtcms.com/a/147960.html

相关文章:

  • 【Python进阶】数据可视化:Matplotlib从入门到实战
  • springboot项目配置springMVC
  • MATLAB Coder 应用:转换 MATLAB 代码至 C/C++ | 实践步骤与问题解决
  • mockMvc构建web单元测试学习笔记
  • C++学习:六个月从基础到就业——C++学习之旅:STL容器详解
  • [特殊字符]【Qt自定义控件】创意开关按钮 - 丝滑动画+自定义样式+信号交互 | 附完整源码
  • OpenLDAP 管理 ELK 用户
  • PHP通讯录网站源码无需sql数据库
  • 【中级软件设计师】程序设计语言基础成分
  • 从零开始创建MCP Server实战指南
  • STM32外部中断与外设中断区别
  • Element Plus表格组件深度解析:构建高性能企业级数据视图
  • Vue2-指令语法
  • C++静态与动态联编区别解析
  • Windows安装Hadoop(图文解说版)
  • 【华为HCIP | 华为数通工程师】821—多选解析—第十二页
  • Spring中配置 Bean 的两种方式:XML 配置 和 Java 配置类
  • NDSS 2025|侧信道与可信计算攻击技术导读(二)系统化评估新旧缓存侧信道攻击技术
  • Mininet--node.py源码解析
  • ViViT: 一种视频视觉Transformer
  • Cline 之Plan和Act模式
  • [大模型]AI Agent入门01——AI Agent概念梳理
  • Ollama 实战手册
  • 植被参数遥感反演技术革命!AI+Python支持向量机/随机森林/神经网络/CNN/LSTM/迁移学习在植被参数反演中的实战应用与优化
  • spark jar依赖顺序
  • SpringBoot原生实现分布式MapReduce计算
  • 进阶篇 第 6 篇:时间序列遇见机器学习与深度学习
  • Elasticsearch 使用reindex进行数据同步或索引重构
  • TockOS,一种新安全软件架构的RTOS介绍
  • 激活函数:神经网络的 “魔法开关”,开启智能之门(三)