拉姆达表达式去重 集合中元素(对象)属性有多个 去掉多个属性相同的元素(对象) 同样适用于一个属性

本文主要是介绍拉姆达表达式去重 集合中元素(对象)属性有多个 去掉多个属性相同的元素(对象) 同样适用于一个属性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Getter
@Setter
public class TsData {private String label;private String value;private Long timestamp;
}

测试类

public class Quchong {public static void main(String[] args) {List<TsData> tsData = new ArrayList<>();tsData.add(new TsData("11","22",1l));tsData.add(new TsData("11","22",1l));tsData.add(new TsData("11","22",1l));System.out.println(tsData);//去重tsData = tsData.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(data -> data.getLabel() + ";" + data.getValue() + ";" + data.getTimestamp()))), ArrayList::new));System.out.println(tsData+"  uuu");}
}

测试结果

[TsData(label=11, value=22, timestamp=1), TsData(label=11, value=22, timestamp=1),TsData(label=11, value=22, timestamp=1)]
[TsData(label=11, value=22, timestamp=1)]  uuu

代码

public class Quchong {public static void main(String[] args) {List<TsData> tsData = new ArrayList<>();tsData.add(new TsData("11","22",1l));tsData.add(new TsData("11","22",1l));tsData.add(new TsData("11","22",1l));System.out.println(tsData);//去重tsData = tsData.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(data -> data.getLabel()))), ArrayList::new));System.out.println(tsData+"  uuu");}
}

结果

[TsData(label=11, value=22, timestamp=1), TsData(label=11, value=22, timestamp=1),TsData(label=11, value=22, timestamp=1)]
[TsData(label=11, value=22, timestamp=1)]  uuu

这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!!!

欢迎加入技术群聊

在这里插入图片描述

这篇关于拉姆达表达式去重 集合中元素(对象)属性有多个 去掉多个属性相同的元素(对象) 同样适用于一个属性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/796410

相关文章

Java中对象的创建和销毁过程详析

《Java中对象的创建和销毁过程详析》:本文主要介绍Java中对象的创建和销毁过程,对象的创建过程包括类加载检查、内存分配、初始化零值内存、设置对象头和执行init方法,对象的销毁过程由垃圾回收机... 目录前言对象的创建过程1. 类加载检查2China编程. 分配内存3. 初始化零值4. 设置对象头5. 执行

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

mysqld_multi在Linux服务器上运行多个MySQL实例

《mysqld_multi在Linux服务器上运行多个MySQL实例》在Linux系统上使用mysqld_multi来启动和管理多个MySQL实例是一种常见的做法,这种方式允许你在同一台机器上运行多个... 目录1. 安装mysql2. 配置文件示例配置文件3. 创建数据目录4. 启动和管理实例启动所有实例