list对象中的数据如何去重呢?

下文笔者讲述list对象的去重方法分享,list的实现类是我们存储数据的容器,

当里面存储的对象存在重复值时,我们该如何对其进行去重操作呢?

下文笔者将一一道来,首先我们需了解对象是否重复,需借助equals方法进行判断,所以我们需重写equals方法,

然后再将list中的数据放入到set集合中,使其自动去重,如下所示:

实现思路:
    1.重写类中的hashcode和equals方法     2.将list对象放入一个set对象中即可达到自动去重的效果
package com.java265.other;
import java.util.*;
public class test {
    public static void main(String[] args) {
        /*
        * author:java265.com
        * list去重操作示例分享
        * */
        List list = new ArrayList<>();
        list.add(new User("1","xiaoming"));
        list.add(new User("2","xiaoming"));
        list.add(new User("3","xiaoming"));
        list.add(new User("4","xiaoming"));
        list.add(new User("4","xiaoming"));

        System.out.println(list);
        System.out.println("------------");
        //去重
        Set set = new HashSet<>();
        set.addAll(list);
        System.out.println(set);
    }
}

class User{
    private String id;
    private String name;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public User() {
    }

    public  User(String id,String name){
         this.id = id;
         this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        User user = (User) o;
        return Objects.equals(id, user.id) &&
                Objects.equals(name, user.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name);
    }
}

转自:http://java265.com/JavaJingYan/202112/16385440541991.html

undefined

Original: https://www.cnblogs.com/javalove2022/p/16723008.html
Author: java未来王者
Title: list对象中的数据如何去重呢?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/598608/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 项目中所用到的mysql重复过滤

    问题:首先用户会本地上传一批号码(可能重复)到我们项目,通过解析文件,把号码入库(只验证是不是号码其他不做改动)到号码表,然后对号码进行去重操作. 表结构为:主键(id),号码(m…

    数据库 2023年6月11日
    070
  • ArrayLIst在指定位置插入的内部实现

    今天看到一个问题:ArrayList的add方法有两种使用,那么add到指定位置内部是怎么实现的? 发现自己对这块地方不熟悉,所以立马去看了ArrayList下的源码 // 第一个…

    数据库 2023年6月9日
    078
  • 一、SQL高级语句

    摘抄别的博主的博客主要总去CSDN看不太方便自己整理一下加深记忆! 导入文件至数据库 #将脚本导入 source 加文件路径 mysql> source /backup/te…

    数据库 2023年5月24日
    098
  • 汇编debug的安装

    实验一查看CPU和内存,用机器指令和汇编指令编程 在做实验前需要debug命令。 工具:dosbox,debug.exe 安装:dosbox :https://www.dosbox…

    数据库 2023年6月11日
    0101
  • 一张图弄懂sql的连接查询

    无意中看到一张图,非常直观的表现出了sql连接查询的结果集,对连接查询的理解十分有帮助,所以收藏了下来。 其中红色部分为可以查询出的数据,白色部分为不能查询出的数据 Origina…

    数据库 2023年6月14日
    089
  • Jmeter环境变量配置你不得不知道的事情

    在安装Jmeter的过程中大家肯定需要配置环境,但是为什么要配置JDK的环境变量呢?大家有没有好奇过,有没有仔细去像一下呢,其实在安装Jmeter前,大家应该都知道Jmeter是我…

    数据库 2023年6月6日
    077
  • MySQL实战45讲 11

    11 | 怎么给字符串字段加索引? Q:如何在邮箱这样的字段上建立合理的索引? 用户表的定义: create table SUser( ID bigint unsigned pri…

    数据库 2023年5月24日
    095
  • 通过Python收集汇聚MySQL 表信息

    一.需求 统计收集各个实例上table的信息,主要是表的记录数及大小。 收集的范围是cmdb中所有的数据库实例。 二.公共基础文件说明 1.配置文件 配置文为db_servers_…

    数据库 2023年6月16日
    0106
  • MyBatis-Plus修改数据,会不会把其他字段置为null

    前两天在用MyBatis-Plus写了一张单表的增删改查,在写到修改的时候,就突然蹦出一个奇怪的想法。 MyBatis-Plus的BaseMapper中有两个关于修改的方法。如下:…

    数据库 2023年6月11日
    0101
  • Linux系统下nginx的安装与卸载

    1.1 安装 准备依赖环境 1.安装 gcc 依赖库 yum install gcc-c++ 2.安装 PCRE pcre-devel 依赖库 yum install -y pcr…

    数据库 2023年6月11日
    083
  • 数字图像处理—检测交通视频中运动目标的程序设计

    初始条件: (1)数字图像处理的基本理论学习; (2)Matlab或Visual C++软件工具。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)…

    数据库 2023年6月16日
    0113
  • 容器化|在 S3 备份恢复 RadonDB MySQL 集群数据

    作者:程润科、钱芬视频:钱芬 上一篇文章我们演示了如何快速实现 MySQL 高可用集群部署,以及部署集群的校验和卸载方式。本文将演示如何对集群进行备份和恢复。 部署版本为 Rado…

    数据库 2023年5月24日
    084
  • 使用clipboard.js复制文字+图片到微信后图片不显示问题处理

    使用clipboard.js复制文字 +图片,粘贴到微信不显示图片,而QQ可以。 解决方案: 图片链接使用http,不要使用https。 使用clipboard.js实现复制功能 …

    数据库 2023年6月14日
    0104
  • ArrayList扩容机制

    1.构造函数 有三种 说第一种无参构造,默认初始容量为10 2.add函数 /** * 将指定的元素追加到此列表的末尾。 */ public boolean add(E e) { …

    数据库 2023年6月16日
    080
  • git仓库push 和 pull只获取部分文件的方法

    gitee项目https://gitee.com/kehaoo/mytest目录结构如下其中part1.txt和part2.txt都是内容都是空的 在另一个文件夹将项目part1文…

    数据库 2023年6月11日
    096
  • MYSQL的Java操作器——JDBC

    在学习了Mysql之后,我们就要把Mysql和我们之前所学习的Java所结合起来 而JDBC就是这样一种工具:帮助我们使用Java语言来操作Mysql数据库 JDBC简介 首先我们…

    数据库 2023年6月14日
    073
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球