iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java【List】去重的 6种方法
  • 657
分享到

Java【List】去重的 6种方法

javalist 2023-09-18 14:09:32 657人浏览 八月长安
摘要

list集合去重 一、HashSet去重二、TreeSet去重三、LinkedHashSet去重四、迭代器去重五、Stream去重六、contains判断去重等等... 其它实现方法

list集合去重

一、HashSet去重

我们知道 HashSet 天生具备“去重”的特性,那我们只需要将 List 集合转换成 HashSet 集合就可以了,实现代码如下:

public class ListDistinctExample {    public static void main(String[] args) {        List<Integer> list = new ArrayList<Integer>() {{            add(1);add(3);add(5);add(2);add(1);            add(3);add(7);add(2);        }};        System.out.println("原集合:" + list);        method_2(list);    }        public static void method_2(List<Integer> list) {        HashSet<Integer> set = new HashSet<>(list);        System.out.println("去重集合:" + set);    }}

以上程序执行的结果:在这里插入图片描述

二、TreeSet去重

除了HashSet集合之外,我们还可以使用 TreeSet 集合来实现去重功能,实现代码如下:

public class ListDistinctExample {    public static void main(String[] args) {        List<Integer> list = new ArrayList<Integer>() {{            add(1);add(3);add(5);add(2);add(1);            add(3);add(7);add(2);        }};        System.out.println("原集合:" + list);        method_4(list);    }        public static void method_4(List<Integer> list) {        TreeSet<Integer> set = new TreeSet<>(list);        System.out.println("去重集合:" + set);    }}

以上程序执行的结果:
在这里插入图片描述

三、LinkedHashSet去重

如果上面的Set 不能满足需求,那就使用 LinkedHashSet,它既能去重又能保证集合的顺序,实现代码如下:

public class ListDistinctExample {    public static void main(String[] args) {        List<Integer> list = new ArrayList<Integer>() {{            add(1);add(3);add(5);add(2);add(1);            add(3);add(7);add(2);        }};        System.out.println("原集合:" + list);        method_3(list);    }        public static void method_3(List<Integer> list) {        LinkedHashSet<Integer> set = new LinkedHashSet<>(list);        System.out.println("去重集合:" + set);    }}

以上程序执行的结果:
在这里插入图片描述

四、迭代器去重

使用迭代器循环判断每一项数据,如果当前循环的数据,在集合中存在两份或两份以上,就将当前的元素删除掉,这样循环完之后,即可得到一个没有重复数据的集合

public class ListDistinctExample {    public static void main(String[] args) {        List<Integer> list = new ArrayList<Integer>() {{            add(1);add(3);add(5);add(2);add(1);            add(3);add(7);add(2);        }};        System.out.println("原集合:" + list);        method_1(list);    }        public static void method_1(List<Integer> list) {        Iterator<Integer> iterator = list.iterator();        while (iterator.hasNext()) {            // 获取循环的值            Integer item = iterator.next();            // 如果存在两个相同的值            if (list.indexOf(item) != list.lastIndexOf(item)) {                // 移除最后那个相同的值                iterator.remove();            }        }        System.out.println("去重集合:" + list);    }}

以上程序执行的结果:
在这里插入图片描述

五、Stream去重

jdk 8 为我们带来了一个非常实用的方法 Stream,使用它可以实现很多功能。(个人感觉Stream很好用👍)

public class ListDistinctExample {    public static void main(String[] args) {        List<Integer> list = new ArrayList<Integer>() {{            add(1);add(3);add(5);add(2);add(1);            add(3);add(7);add(2);        }};        System.out.println("原集合:" + list);        method_5(list);    }        public static void method_5(List<Integer> list) {        list = list.stream().distinct().collect(Collectors.toList());        System.out.println("去重集合:" + list);    }}

以上程序执行的结果:
在这里插入图片描述

六、contains判断去重

新建一个集合,然后循环原来的集合,每次循环判断原集合中的循环项,如果当前循环的数据,没有在新集合中存在就插入,已经存在了就舍弃,就得到了一个没有重复元素的集合了

public class ListDistinctExample {    public static void main(String[] args) {        List<Integer> list = new ArrayList<Integer>() {{            add(1);add(3);add(5);add(2);add(1);            add(3);add(7);add(2);        }};        System.out.println("原集合:" + list);        method(list);    }        public static void method(List<Integer> list) {        // 新集合        List<Integer> newList = new ArrayList<>(list.size());        list.forEach(i -> {            if (!newList.contains(i)) { // 如果新集合中不存在则插入                newList.add(i);            }        });        System.out.println("去重集合:" + newList);    }}
等等… 其它实现方法

来源地址:https://blog.csdn.net/weixin_43825761/article/details/127778880

--结束END--

本文标题: Java【List】去重的 6种方法

本文链接: https://www.lsjlt.com/news/411705.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java【List】去重的 6种方法
    list集合去重 一、HashSet去重二、TreeSet去重三、LinkedHashSet去重四、迭代器去重五、Stream去重六、contains判断去重等等... 其它实现方法 ...
    99+
    2023-09-18
    java list
  • 汇总Java中List去重的6种方法
    目录前置知识无序集合有序集合有序和无序方法1:contains判断去重(有序)方法2:迭代器去重(无序)方法3:HashSet去重(无序)方法4:LinkedHashSet去重(有序...
    99+
    2024-04-02
  • List去重的几种方法
    list去重 现在设有Integer类型的ArrayList,list=[0,1,1,3,3,4,5] 1.使用contains //使用contains List li...
    99+
    2023-10-04
    list java 数据结构
  • Java实现List去重的五种方法详解
    目录通过HashSet去重(不保证顺序)通过HashSet去重(保证顺序)遍历后判断赋给另一个list集合去重(保证顺序)通过TreeSet去重(保证顺序)Java8中Stream流...
    99+
    2022-11-13
    Java List去重方法 Java List去重 Java去重 List 去重
  • java list去重的方法有哪些
    Java中List去重的方法有以下几种:1. 使用Set:将List转换为Set,因为Set不允许有重复元素,所以会自动去重。然后再...
    99+
    2023-09-11
    java
  • Java实现List去重的方法详解
    目录简介直接去重根据对象属性去重法1:TreeSet 法2:stream+TreeSet所有代码简介 本文用示例介绍Java的List(ArrayList、LinkedLi...
    99+
    2024-04-02
  • Java中Stream流去除List重复元素的方法
    本文实例为大家分享了Java中Stream流去除List重复元素的具体代码,供大家参考,具体内容如下 业务场景 在开发中我们常常需要过滤List中的重复对象,而重复的定义往往是根据单...
    99+
    2024-04-02
  • Java合并两个List并去掉重复项的几种做法
    一、前言 工作中很多时候需要用到合并两个List并去除其中的重复内容,这是一个很简单的操作,实现的方法也多种多样,请继续往下看 二、使用stream方式进行去重(需要jdk1.8及以上) String[] arr1 = {"a", "b",...
    99+
    2023-08-31
    java 开发语言
  • 【Java】Java合并两个List后并去掉重复项的几种做法
    文章目录 前言一、使用stream方式进行去重(需要jdk1.8及以上)二、使用HashSet集合的方式进行去重 前言 工作中很多时候需要用到合并两个List并去除其中的重复内容,这是一个很简单的操作,实现的方法也多种多样。 下...
    99+
    2023-08-17
    java list
  • java stream去重的几种方式
    java stream去重的几种方式 使用 Stream 的 distinct() 方法使用 collectingAndThen() 和 toCollection() 方法使用 filter() 方法 使用 Stream 的 d...
    99+
    2023-08-22
    java
  • List集合去重的方法有哪些
    本篇内容介绍了“List集合去重的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题由来在实际开发的时候,我们经常会碰到这么一个困...
    99+
    2023-06-27
  • Java中List for循环的6种写法总结(推荐)
    如下所示:List<String> list = new ArrayList<String>();for (int i = 0; i < list.size(); i++) {System.out.printl...
    99+
    2023-05-31
    list for循环 java
  • Java创建List 的三种方法
    通过 new ArrayList()  List 名称 = new ArrayList();EG: List stringList = new ArrayList();// 这种方法就是用add来添加 .add(类型的数据)// 拿到方法...
    99+
    2023-09-21
    java
  • Java中List集合去重方法以及效率对比
    List集合相信大家在开发过程中几乎都会用到。有时候难免会遇到集合里的数据是重复的,需要进行去除。然而,去重方式有好几种方式,你用的是哪种方式呢?去重方式效率是否是最高效、最优的呢?...
    99+
    2024-04-02
  • java去除数组重复元素的四种方法
    方法1: 需要一个存储去重后元素的数组,然后两层循环,外层遍历原数组,内容逐个判断是否和之后的元素重复,然后再提出来存入新的数组。方法System.arraycopy(被复制的数组,...
    99+
    2024-04-02
  • mysql去重查询的三种方法
    文章目录 前言一、插入测试数据二、剔除重复数据方法1.方法一:使用distinct2.方法二:使用group by3.方法三:使用开窗函数 总结 前言 数据库生成环境中经常会遇到表中有重复的数据,或者进行关联过程中产生重复...
    99+
    2023-08-16
    mysql 数据库
  • Java中方法重写和方法重载的6个区别
    一、定义 方法重载(Overloading):在同一个类中,方法名相同但参数类型、参数个数不同的方法之间的关系。 方法重写(Overriding):在子类中,有相同的方法名、参数类型、参数个数并且返回类型兼容的方法称之为...
    99+
    2023-10-29
    方法 重写 区别
  • js数组去重的11种方法
    在实际工作或面试中,我们经常会遇到“数组去重”问题,接下来就是使用js实现的数组去重的多种方法: 1.将数组的每一个元素依次与其他元素做比较,发现重复元素,删除 var arr ...
    99+
    2024-04-02
  • Java中List排序的3种方法
    在某些特殊的场景下,我们需要在 Java 程序中对 List 集合进行排序操作。比如从第三方接口中获取所有用户的列表,但列表默认是以用户编号从小到大进行排序的,而我们的系统需要按照用户的年龄从大到小进行排序,这个时候,我们就需要对 List...
    99+
    2023-08-31
    java list 开发语言
  • Java中list集合stream流去重
    Java中list集合stream流去重 1. List单个字段去重 list.stream().distinct().collect(Collectors.toList()); 2. List对象...
    99+
    2023-09-15
    java jvm servlet
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作