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

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.xdnf.cn/news/1011.html

相关文章:

  • 分别配置Github,Gitee的SSH链接
  • 扩散模型(Diffusion Models)
  • Linux-信号
  • 媒体关注:联易融聚焦AI+业务,重塑供应链金融生态
  • 【k8s】PV,PVC的回收策略——return、recycle、delete
  • 开源模型应用落地-Podcastfy-从文本到声音的智能跃迁-Docker(二)
  • CSS预处理器对比:Sass、Less与Stylus如何选择
  • 如何改电脑网络ip地址完整教程
  • Python常用的第三方模块之数据分析【pdfplumber库、Numpy库、Pandas库、Matplotlib库】
  • Docker 部署 Redis 缓存服务
  • 路由器转发规则设置方法步骤,内网服务器端口怎么让异地连接访问的实现
  • 一键配置多用户VNC远程桌面:自动化脚本详解
  • linux下使用wireshark捕捉snmp报文
  • 开源状态机引擎,在实战中可以放心使用
  • 15.QT-容器类控件|Group Box|Tab Widget|垂直布局|水平布局|网格布局|表单布局|Spacer(C++)
  • Idea 配置 Git
  • Uniapp:swiper(滑块视图容器)
  • 如何将Qt程序打包成应用程序?
  • 流程执行松散,如何强化规范?
  • 【Linux内核设计与实现】第三章——进程管理01
  • 信奥中的数学
  • 构建企业级知识图谱:JanusGraph与Gremlin实战指南
  • C++入门小馆: 深入string类(二)
  • SpringAI入门示例
  • CmStick CmStick ME|精工品质与工业级安全的加密狗之选[特殊字符][特殊字符]
  • 【踩坑tip】解决两个一样的USB设备插入后第二个识别失败的问题
  • 使用Mybaitis-plus提供的各种的免写SQL的Wrapper的使用方式
  • 【C++教程】%lf和%f的区别
  • C++算法(10):二叉树的高度与深度,(C++代码实战)
  • RabbitMQ常见面试题回答重点