java 两个list比较,删除相同的元素

概述


在Java开发中,经常需要比较两个List并删除相同的元素。本文将介绍整个流程,并提供相应的代码示例,帮助新手开发者完成这个任务。

流程
下面是比较两个List并删除相同元素的流程:

代码示例
创建两个List
我们首先需要创建两个List对象,分别代表待比较的两个列表。

List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();

添加元素到List1
接下来,我们需要向List1中添加一些元素。

list1.add("Apple");
list1.add("Banana");
list1.add("Orange");

添加元素到List2
然后,我们需要向List2中添加一些元素。

list2.add("Banana");
list2.add("Grapes");
list2.add("Orange");

比较两个List
现在,我们需要比较两个List,找出相同的元素。

List<String> commonElements = new ArrayList<>(list1);
commonElements.retainAll(list2);

这段代码使用了retainAll方法,该方法会保留List1中与List2中相同的元素,存储到commonElements中。

删除相同元素
接下来,我们需要从List1中删除相同的元素。

list1.removeAll(commonElements);

输出结果
最后,我们需要输出结果,打印删除相同元素后的List1。

System.out.println("List1 after removing common elements: " + list1);

完整代码示例
下面是完整的代码示例:

import java.util.ArrayList;
import java.util.List;public class ListComparisonExample {public static void main(String[] args) {// 创建两个ListList<String> list1 = new ArrayList<>();List<String> list2 = new ArrayList<>();// 添加元素到List1list1.add("Apple");list1.add("Banana");list1.add("Orange");// 添加元素到List2list2.add("Banana");list2.add("Grapes");list2.add("Orange");// 比较两个ListList<String> commonElements = new ArrayList<>(list1);commonElements.retainAll(list2);// 删除相同元素list1.removeAll(commonElements);// 输出结果System.out.println("List1 after removing common elements: " + list1);}
}

运行以上代码,输出结果如下:

List1 after removing common elements: [Apple]

这表明删除了与List2中相同的元素"Banana"和"Orange",只剩下"Apple"。

总结


通过以上步骤,我们成功实现了比较两个List并删除相同元素的功能。首先,我们创建了两个List,并向它们添加了一些元素。然后,我们使用retainAll方法比较两个List,并得到相同的元素。接着,我们使用removeAll方法从List1中删除相同的元素。最后,我们输出删除相同元素后的List1。

希望本文能帮助到刚入行的小白开发者理解如何实现Java两个List比较并删除相同的元素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/159603.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[开源]企业级流程中心,基于flowable和bpmn.js封装的流程引擎

一、开源项目简介 企业级流程中心&#xff08;基于flowable和bpmn.js封装的流程引擎&#xff0c;采用Springboot&#xff0c;Mybatis-plus, Ehcache, sa-token 等框架技术,前端采用Vue3&Antd&#xff0c;Vben&#xff09;。 二、开源协议 使用Apache-2.0开源协议 三、界…

docker 复习

文章目录 docker 安装配置镜像加速器拉取镜像的仓库&#xff1a; docker 部署Mysql 镜像命令的详细解释docker 相关命令总结 docker 安装 查看是否安装的镜像已经在系统中存在&#xff1a; docker images &#xff08;存在2&#xff0c;不存在 3&#xff09; 卸载旧版本 yum r…

技术分享:深入浅出讲解GLSB是什么?

在互联网早期&#xff0c;由于网络不是很发达&#xff0c;流量也相对比较小&#xff0c;单体架构已经能足够满足需求。但伴随着互联网越来越&#xff0c;网站的流量请求甚至能达到上千亿。为了实现高可用&#xff0c;需要用到多台机器来提升处理流量的能力。在这种环境下&#…

C++项目实战——基于多设计模式下的同步异步日志系统-⑫-日志宏全局接口设计(代理模式)

文章目录 专栏导读日志宏&全局接口设计全局接口测试项目目录结构整理示例代码拓展示例代码 专栏导读 &#x1f338;作者简介&#xff1a;花想云 &#xff0c;在读本科生一枚&#xff0c;C/C领域新星创作者&#xff0c;新星计划导师&#xff0c;阿里云专家博主&#xff0c;C…

DevExpress Reporting中文教程 - 如何在macOS等系统中生成导出报表文档

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表。 在本文中&#xff0c;我们将讨论如何在.NET MA…

如何制作有专业水准的的电子杂志:专家教你秘籍

​随着数字化时代的到来&#xff0c;电子杂志作为一种新型的传媒形式&#xff0c;越来越受到人们的关注和喜爱。但是&#xff0c;如何制作一份具有专业水准的电子杂志呢&#xff1f; 今天&#xff0c;给大家分享一款在线就能制作的电子杂志------FLBOOK&#xff0c;让你轻松打造…

宝塔面板部署express以及MySql项目

第一次在宝塔面板上部署express和MySql项目&#xff0c;部署过程一直跑不通接口&#xff0c;特此记录一下。 在部署的时候&#xff0c;建议第一步把数据库MySql给跑通&#xff0c;中间好多原因是由于数据库的原因给引起的。 一.连接数据库 &#xff08;1&#xff09;在宝塔面…

CSS变量 var()的用法

写在前面 这里介绍一下开发中常用的css变量var()&#xff0c;它可以实现样式的动态设置&#xff0c;使用方法主要分为全局使用和局部使用两种。 如何定义CSS变量var() 在CSS文件中&#xff0c;变量需要使用 – 作为前缀来定义&#xff0c;后面跟上变量名和值&#xff0c;如&a…

从0开始学go第八天

gin获取URL路径参数 package main//获取path&#xff08;URL&#xff09;参数 import ("net/http""github.com/gin-gonic/gin" )func main() {r : gin.Default()r.GET("/:name/:age", func(c *gin.Context) {//获取路径参数name : c.Param(&quo…

Python 连接数据库添加字段

任务需求&#xff1a; 数据库hospital集合所有数据添加一个八位数的编码 import pymongo# 连接数据customer&#xff08;库&#xff09;hospital&#xff08;集合&#xff09; client pymongo.MongoClient(host127.0.0.1) db client.customer collection db.hospitalhospit…

开源六轴机械臂myCobot 280末端执行器实用案例解析

Intrduction 大家好&#xff0c;今天这篇文章的主要内容是讲解以及使用一些myCobot 280 的配件&#xff0c;来了解这些末端执行器都能够完成哪些功能&#xff0c;从而帮助大家能够正确的选择一款适合的配件来进行使用。 本文中主要介绍4款常用的机械臂的末端执行器。 Product m…

【M1-Java】讲讲 StringBuffer和StringBuilder区别

StringBuffer和StringBuilder区别 开头&#xff1a;首先&#xff0c;StringBuffer和StringBuilder都是用于存储或者修改拼接字符串的&#xff0c;与String类似。 来源:都继承AbstractStringBuilder类。初始容量为16的字符串缓冲区。 字符修改上的区别: ①和 String 类不同的…

迅雷下载宝-openwrt-kodexplorer

下载仓库 雾渺/KODExplorer - Gitee.com 下载后解压上传文件/mnt/mmcblk0/kodexplorer ip:8080访问

ionic+vue+capacitor系列笔记--常用操作代码合集(图片引用,axios跨域配置,去除按钮波纹)

1.单个图片引用 html <img :src"userImgSrc" />ts <script lang"ts"> import { defineComponent } from "vue"; export default defineComponent({name: "Tab1Page",components: {},setup(props, context) {let url &…

Linux性能基础:CPU、内存、磁盘等概述

目录 1. CPU 1.1. CPU常见品牌 1.2. CPU性能概述 ① CPU主频 ② CPU位数 ③ CPU缓存指令集 ④ CPU核心数 ⑤ IPC 1.3. 上下文切换 1.4. 进程与线程 ① 进程 ② 线程 2. 内存 2.1. 内存主频 2.2. 内存带宽 2.3. 内存分类 2.4. 内存的分配 2.5. 内存的回收 2.6. 内存泄漏 3. 磁盘…

算法通过村第十四关-堆|白银笔记|经典问题

文章目录 前言在数组中寻找第K大的元素堆排序原理合并K个排序链表总结 前言 提示&#xff1a;想要从讨厌的地方飞出来&#xff0c;就得有藏起来的翅膀。 --三岛由纪夫《萨德侯爵夫人》 这里我们主要看一下经典的题目&#xff0c;这三个题目来说都是堆的热点问题。重点再理解处理…

华为发布LampSite X室内数字化创新解决方案,释放数字世界无限潜能

【阿联酋&#xff0c;迪拜&#xff0c;2023年10月11日】2023全球移动宽带论坛&#xff08;Global MBB Forum 2022&#xff09;期间&#xff0c;华为董事、ICT产品与解决方案总裁杨超斌重磅发布了全新一代5G室内数字化产品解决方案LampSite X系列&#xff0c;助力运营商打开商业…

在Unity中挂载C#脚本的三种方法

第一种 ①在Project&#xff08;工程&#xff09;窗口的某个文件夹中&#xff08;也可以选择新建在Assets&#xff08;资源根目录&#xff09;中&#xff09;&#xff0c;然后单击鼠标右键&#xff0c;选择Create->C# Script 注意&#xff1a;扩展名在Unity编辑器中是隐藏…

C# PortraitModeFilter (人物图片)背景模糊

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.Linq; using System.Windows.Forms; us…

为什么估计的参数具有渐进高斯性?M-estimateor的渐进高斯性推导

M-estimators 在这里我们研究一种叫M-estimators的渐进高斯性。具体来说&#xff0c;如果参数估计可以用一个最小化或者最大化目标表示&#xff1a; θ o arg ⁡ min ⁡ θ ∈ Θ E [ q ( w , θ ) ] \theta _{o} \arg\min_{\theta \in \Theta }\mathbb{E}[ q(w,\theta )] θ…