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);

完整代码示例

下面是完整的代码示例:

java 复制代码
import java.util.ArrayList;
import java.util.List;

public class ListComparisonExample {
    public static void main(String[] args) {
        // 创建两个List
        List<String> list1 = new ArrayList<>();
        List<String> list2 = new ArrayList<>();

        // 添加元素到List1
        list1.add("Apple");
        list1.add("Banana");
        list1.add("Orange");

        // 添加元素到List2
        list2.add("Banana");
        list2.add("Grapes");
        list2.add("Orange");

        // 比较两个List
        List<String> commonElements = new ArrayList<>(list1);
        commonElements.retainAll(list2);

        // 删除相同元素
        list1.removeAll(commonElements);

        // 输出结果
        System.out.println("List1 after removing common elements: " + list1);
    }
}

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

java 复制代码
List1 after removing common elements: [Apple]

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

总结

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

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

相关推荐
Dxxyyyy10 分钟前
零基础学JAVA--Day26(枚举类)
java·开发语言
好望角雾眠16 分钟前
第四阶段C#通讯开发-6:Socket之UDP
开发语言·笔记·学习·udp·c#
黑屋里的马21 分钟前
java的设计模式之桥接模式(Bridge)
java·算法·桥接模式
升鲜宝供应链及收银系统源代码服务24 分钟前
升鲜宝生鲜配送供应链管理系统---PMS--商品品牌多语言存储与 Redis 缓存同步实现
java·开发语言·数据库·redis·缓存·开源·供应链系统
大佬,救命!!!27 分钟前
python实现象棋
开发语言·python·学习笔记·pygame·少儿编程·记录成长
棉猴27 分钟前
《pygame中Sprite类实现多帧动画》注-通过多张序列帧显示动画2-2
开发语言·python·游戏·游戏程序·pygame
练习时长一年35 分钟前
Spring AoP的切点匹配
java·开发语言
276695829242 分钟前
朴朴超市小程序分析
java·python·小程序·node·sign·朴朴超市·sign-v2
源码宝1 小时前
企业项目级医院随访系统源码,患者随访管理系统,技术框架:Java+Spring boot,Vue,Ant-Design+MySQL5
java·vue.js·spring·程序·医院管理系统·随访·随访系统源码
手握风云-1 小时前
JavaEE 进阶第五期:Maven 之道,项目的依赖艺术与构建哲学
java·java-ee·maven