iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java中Stream流去除List重复元素的方法
  • 838
分享到

Java中Stream流去除List重复元素的方法

2024-04-02 19:04:59 838人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了Java中Stream流去除List重复元素的具体代码,供大家参考,具体内容如下 业务场景 在开发中我们常常需要过滤List中的重复对象,而重复的定义往往是根据单

本文实例为大家分享了Java中Stream流去除List重复元素的具体代码,供大家参考,具体内容如下

业务场景

开发中我们常常需要过滤List中的重复对象,而重复的定义往往是根据单个条件或者多个条件,如果是单个条件的话还是比较好处理的,即使不使用工具,代码也可以很容易实现,但如果判断依据不是单个条件,而是多个条件的话,代码实现起来就会比较复杂,此时我们一般就会使用工具来简化开发

单条件去重代码

ArrayList<listData> collect = list.stream().collect(Collectors.collectingAndThen(
          Collectors.toCollection(() -> new TreeSet<>(
            Comparator.comparing(
        listData::getId))), ArrayList::new));

解释

list-列表
listData-列表中存的对象
id是判断是否重复的条件,只保留唯一id对象

多条件去重代码

ArrayList<listData> collect = list.stream().collect(Collectors.collectingAndThen(
     Collectors.toCollection(() -> new TreeSet<>(
       Comparator.comparing(p->p.getPatentName() + ";" + p.getLevel()))), ArrayList::new));

测试代码

import java.util.*;
import java.util.stream.Collectors;

public class excelUtil {

    private static String[] params = {"p001","p002","p003","p004"};

    public static void main(String[] args) {

        List<Datum> dataList = new ArrayList<>();

        for (int i = 0; i < 100; i++) {
            if (i%2==0){
                Datum datum = new Datum(
                        params[new Random().nextInt(params.length)],
                        params[new Random().nextInt(params.length)],
                        params[new Random().nextInt(params.length)],
                        params[new Random().nextInt(params.length)],
                        params[new Random().nextInt(params.length)]
                );
                dataList.add(datum);
            }
        }
        
        System.out.println("0 size : "+dataList.size()+" -> "+dataList);

        // 单条件
        ArrayList<Datum> collect1 = dataList.stream().collect(Collectors.collectingAndThen(
                Collectors.toCollection(() -> new TreeSet<Datum>(
                        Comparator.comparing(
                                Datum::getId))), ArrayList::new));

        System.out.println("1 size : "+collect1.size()+" -> "+collect1);

        // 两个条件
        ArrayList<Datum> collect2 = dataList.stream().collect(Collectors.collectingAndThen(
                Collectors.toCollection(() -> new TreeSet<>(
                        Comparator.comparing(p->p.getId() + ";" + p.getAddress()))), ArrayList::new));

        System.out.println("2 size : "+collect2.size()+" -> "+collect2);

        // 三个条件
        ArrayList<Datum> collect3 = dataList.stream().collect(Collectors.collectingAndThen(
                Collectors.toCollection(() -> new TreeSet<>(
                        Comparator.comparing(p->p.getInfo() + ";" + p.getAddress()+";"+p.getName()))), ArrayList::new));

        System.out.println("3 size : "+collect3.size()+" -> "+collect3);

    }

}

效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Java中Stream流去除List重复元素的方法

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

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

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

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

下载Word文档
猜你喜欢
  • Java中Stream流去除List重复元素的方法
    本文实例为大家分享了Java中Stream流去除List重复元素的具体代码,供大家参考,具体内容如下 业务场景 在开发中我们常常需要过滤List中的重复对象,而重复的定义往往是根据单...
    99+
    2024-04-02
  • Java中list集合stream流去重
    Java中list集合stream流去重 1. List单个字段去重 list.stream().distinct().collect(Collectors.toList()); 2. List对象...
    99+
    2023-09-15
    java jvm servlet
  • java去除数组重复元素的四种方法
    方法1: 需要一个存储去重后元素的数组,然后两层循环,外层遍历原数组,内容逐个判断是否和之后的元素重复,然后再提出来存入新的数组。方法System.arraycopy(被复制的数组,...
    99+
    2024-04-02
  • java中怎么去掉List集合中重复的元素
    本篇内容介绍了“java中怎么去掉List集合中重复的元素”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!&...
    99+
    2024-04-02
  • Java中List删除元素方法总结
    文章目录 Java中List删除元素删除方式总览for循环顺序遍历删除for循环反向遍历删除使用Iterator迭代器删除使用lambda表达式删除列表元素(推荐)使用方法引用删除列表元素 ...
    99+
    2023-09-25
    java list 开发语言
  • JAVA如何去除数组重复元素
    可以使用Set集合来去除数组中的重复元素。Set集合是不允许出现重复元素的集合,可以通过将数组转换为Set集合,然后再将Set集合转...
    99+
    2023-09-22
    JAVA
  • 比较 PHP 中去除数组重复元素的不同方法
    php 中去除数组重复元素的方法有多种,包括:使用 array_unique() 函数(返回新数组,仅包含唯一值)、使用 array_flip() 和 array_keys() 函数(通...
    99+
    2024-04-27
    php 数组去重
  • java学习之一维数组中重复元素的去除
    目录一、基本思路二、步骤1.设置判断数组Arr[ ]2.继承数组newArr[ ]获取不重复元素总结一、基本思路 首先,假设一个一维数组arr[ ]={ 4, 3, 35, 3, 2...
    99+
    2024-04-02
  • python怎么去除列表中的重复元素
    可以使用set()函数将列表转换为集合,再将集合转换为列表,即可去除列表中的重复元素。具体代码如下:```python# 原始列表l...
    99+
    2023-09-23
    python
  • Python如何删除一个list中的重复元素
    小编给大家分享一下Python如何删除一个list中的重复元素,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!请写出一段 Pyth...
    99+
    2024-04-02
  • python如何去除列表中的重复元素
    可以使用set()函数来去除列表中的重复元素。set()函数能够将列表转换为集合,并且集合中不允许有重复元素,然后再将集合转换为列表。具体代码如下:```pythonoriginal_list = [1, 2, 3, 2, 4, 3, ...
    99+
    2023-08-11
    python
  • java如何取出list里重复的元素
    可以使用两层循环遍历list,对每个元素进行比较,如果找到重复的元素,则将其添加到一个新的list中。以下是一个示例代码:```ja...
    99+
    2023-09-11
    java
  • java循环删除list元素的方法是什么
    在Java中,可以使用迭代器来循环遍历并删除List中的元素。以下是一个示例:```javaList list = new Arra...
    99+
    2023-08-26
    java list
  • JAVA8 获取list集合中重复的元素和获取去重数据
    1.java8获取list集合中重复的元素 //单独String集合 List list = Arrays.asList("a","b","a","c","d","b"); List collect ...
    99+
    2023-08-23
    list java
  • PHP 数组去重时指定去除重复元素的依据
    php 的 array_unique() 函数用于去除数组中重复元素,其缺省使用严格相等 (===)。我们可以通过自定比较函数来指定去重依据:创建自定比较函数,指定去重的标准(例如根据元...
    99+
    2024-04-29
    php 数组去重
  • Java【List】去重的 6种方法
    list集合去重 一、HashSet去重二、TreeSet去重三、LinkedHashSet去重四、迭代器去重五、Stream去重六、contains判断去重等等... 其它实现方法 ...
    99+
    2023-09-18
    java list
  • Java中怎么删除ArrayList的重复元素
    Java中怎么删除ArrayList的重复元素,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。方法1:使用HashSet删除ArrayList中重复的元素在该方法...
    99+
    2023-06-17
  • 汇总Java中List去重的6种方法
    目录前置知识无序集合有序集合有序和无序方法1:contains判断去重(有序)方法2:迭代器去重(无序)方法3:HashSet去重(无序)方法4:LinkedHashSet去重(有序...
    99+
    2024-04-02
  • java list去重的方法有哪些
    Java中List去重的方法有以下几种:1. 使用Set:将List转换为Set,因为Set不允许有重复元素,所以会自动去重。然后再...
    99+
    2023-09-11
    java
  • python list删除元素的方法有哪些
    Python中删除列表元素的方法有以下几种:1. 使用`del`关键字```pythonmy_list = [1, 2, 3, 4,...
    99+
    2023-09-25
    Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作