Java 对比两个list 找出重复的 和不重复的

ops/2024/10/10 17:07:28/

使用场景:

list 可以对比两个list 那些是重复的 那些是不重复的,直接把 500 个船名放到list 里面 然后再把 指挥系统查出来的400个船名放到新的list 里面 然后掉一个方法能对比出来两个list 交际 差集 并集

java">public static List<String> findNonIntersection(List<String> list1, List<String> list2) {List<String> difference = new ArrayList<>(list1);difference.removeAll(list2);//移除list1里面相同元素 得到差集return difference;
}public static void main(String[] args) {List<String> list1 = Arrays.asList("1", "2", "3", "4", "5");List<String> list2 = Arrays.asList("1", "2", "4");List<String> nonIntersection = findNonIntersection(list1, list2);System.out.println("没有交集的部分:" + nonIntersection);
}

实际应用:

java">import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;public class ShipNameComparison {public static void main(String[] args) {// 模拟500个船名List<String> shipNamesList1 = new ArrayList<>();for (int i = 1; i <= 500; i++) {shipNamesList1.add("Ship" + i);}// 模拟400个船名List<String> shipNamesList2 = new ArrayList<>();for (int i = 250; i <= 650; i++) {shipNamesList2.add("Ship" + i);}// 获取交集、差集和并集Set<String> intersection = getIntersection(shipNamesList1, shipNamesList2);Set<String> difference1 = getDifference(shipNamesList1, shipNamesList2);Set<String> difference2 = getDifference(shipNamesList2, shipNamesList1);Set<String> union = getUnion(shipNamesList1, shipNamesList2);// 输出结果System.out.println("交集: " + intersection);System.out.println("船名在List1但不在List2的差集: " + difference1);System.out.println("船名在List2但不在List1的差集: " + difference2);System.out.println("并集: " + union);}// 获取交集public static Set<String> getIntersection(List<String> list1, List<String> list2) {Set<String> set1 = new HashSet<>(list1);Set<String> set2 = new HashSet<>(list2);set1.retainAll(set2); // 保留set1中也存在于set2中的元素return set1;}// 获取差集public static Set<String> getDifference(List<String> list1, List<String> list2) {Set<String> set1 = new HashSet<>(list1);Set<String> set2 = new HashSet<>(list2);set1.removeAll(set2); // 移除set1中也存在于set2中的元素return set1;}// 获取并集public static Set<String> getUnion(List<String> list1, List<String> list2) {Set<String> unionSet = new HashSet<>(list1);unionSet.addAll(list2); // 添加list2的所有元素return unionSet;}
}


http://www.ppmy.cn/ops/123581.html

相关文章

网络基础知识笔记(一)

什么是计算机网络 1.计算机网络发展的第一个阶段&#xff1a;(60年代) 标志性事件&#xff1a;ARPANET 关键技术&#xff1a;分组交换 计算机网络发展的第二个阶段&#xff1a;(70-80年代) 标志性事件&#xff1a;NSFNET 关键技术:TCP/IP 计算机网络发展的第三个阶段&#xff…

SafeLine - 雷池 - 不让黑客越过半步

&#x1f44b; 项目介绍 SafeLine&#xff0c;中文名 “雷池”&#xff0c;是一款简单好用, 效果突出的 Web 应用防火墙(WAF)&#xff0c;可以保护 Web 服务不受黑客攻击。 雷池通过过滤和监控 Web 应用与互联网之间的 HTTP 流量来保护 Web 服务。可以保护 Web 服务免受 SQL …

代码随想录day24:贪心part2

121. 买卖股票的最佳时机 class Solution {public int maxProfit(int[] prices) {int ans 0;int minPrice prices[0];for(int p : prices){ans Math.max(ans, p - minPrice);minPrice Math.min(p, minPrice);}return ans;} } 运用前缀和思想&#xff0c; 从左到右枚举卖…

Pikachu-Sql Inject-宽字节注入

基本概念 宽字节是相对于ascII这样单字节而言的&#xff1b;像 GB2312、GBK、GB18030、BIG5、Shift_JIS 等这些都是常说的宽字节&#xff0c;实际上只有两字节 GBK 是一种多字符的编码&#xff0c;通常来说&#xff0c;一个 gbk 编码汉字&#xff0c;占用2个字节。一个…

【微服务】链路追踪 - Micrometer(day9)

概述 引入 在微服务架构下&#xff0c;客户端一个请求不再仅仅通过一个后端服务和数据库服务就能返回响应&#xff0c;而是通过多个服务节点的协同调用才会产生最终的响应。因此&#xff0c;一个简单的请求就可能会形成一个复杂的分布式服务调用链路&#xff0c;链路中的任何…

云原生(四十七) | PHP软件安装部署

文章目录 PHP软件安装部署 一、PHP软件部署步骤 二、安装与配置PHP PHP软件安装部署 一、PHP软件部署步骤 第一步&#xff1a;安装 EPEL 仓库 与 Remi仓库 第二步&#xff1a;启用 Remi 仓库 第三步&#xff1a;安装 PHP、PHP-FPM 第四步&#xff1a;启动并开机启用 PH…

C/S模型的简单实现(UDP服务器)、本地套接字(sockaddr_un )的讲解

目录 1.UDP 1.1 UDP服务器 1.2 TPC和UDP的比较 1.3 C/S模型 -- UDP recvfrom、sendto server client 2.本地套接字 2.1 套接字比较 2.2 函数参数选用 2.3 server 2.4 client 2.5 实现对比 1.UDP 1.1 UDP服务器 UDP 是一种无连接的传输协议&#xff0c;类似于发送…

[C#]使用纯opencvsharp部署yolov11-onnx图像分类模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 使用纯OpenCvSharp部署YOLOv11-ONNX图像分类模型是一项复杂的任务&#xff0c;但可以通过以下步骤实现&#xff1a; 准备环境&#xff1a;首先&#xff0c;确保开发环境已安装OpenCvSharp和必…