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)

大家都在看

  • IDEA中如何查看接口的所有实现类呢?

    接口是我们日常开发中常用的操作,那么如何查看一个接口有哪些实现类呢?下文笔者将讲述IDEA编辑器中 查看实现类的快捷方法,如下所示 在spring源码阅读中,每一个接口都有很多实现…

    数据库 2023年6月11日
    087
  • 链表(Java)实现

    链表 先给出自定义的list接口,后面几种链表的实现了该接口 public interface List { //统计顺序表元素个数 int size(); //判断顺序表是否为空…

    数据库 2023年6月16日
    091
  • MySQL实战45讲 17

    17 | 如何正确地显示随机消息? 场景:从一个单词表中随机选出三个单词。 表的建表语句和初始数据的命令如下,在这个表里面插入了 10000 行记录: CREATE TABLE w…

    数据库 2023年6月14日
    072
  • python-django框架中使用FastDFS分布式文件系统

    一、安装FastDFS 1-1:执行docker命令安装 bash;gutter:true; 安装tracker docker run -dti –network=host –…

    数据库 2023年6月6日
    0103
  • 没有 Cgroups,就没有 Docker

    Cgroups 是什么? Cgroups 是 control groups 的缩写,是 Linux 内核提供的一种可以 限制、 记录、 隔离进程组(progress groups)…

    数据库 2023年6月6日
    0117
  • 从零搭建云原生技术kubernetes(K8S)环境-通过kubesPhere的AllInOne方式

    前言 k8s云原生搭建,步骤有点多,但通过kubesphere,可以快速搭建k8s环境,同时有一个以 Kubernetes 为内核的云原生分布式操作系统-kubesphere,本文…

    数据库 2023年6月16日
    0101
  • 即时通讯课设Android端问题记录

    转眼间,就已经是大四学生,目前正在写毕设。Android 端没有系统的学习过,都是哪里不会查哪里,基本靠度娘。所以,在此记录下课设开发过程中,Android 端遇到的问题。 在主线…

    数据库 2023年6月9日
    061
  • java中如何将函数作为参数传递呢?

    函数简介: 函数(function)的定义通常分为传统定义和近代定义,函数的两个定义本质是相同的,只是叙述概念的出发点不同,传统定义是从运动变化的观点出发,而近代定义是从集合、映射…

    数据库 2023年6月11日
    097
  • Socket 编码入门

    很多同行朋友大概率学过 socket 通信相关知识, send, recv, listen, connect, accept 等等组合, 变幻 无穷 … 相关的介绍书籍…

    数据库 2023年6月9日
    073
  • 计算机操作系统(慕课版)思维导图

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据库 2023年6月16日
    0104
  • JWT+SpringSecurity登录和权限管理

    一、什么是JWT 说起JWT,我们应该来谈一谈基于token的认证和传统的session认证的区别。说起JWT,我们应该来谈一谈基于token的认证和传统的session认证的区别…

    数据库 2023年6月6日
    0107
  • IDEA 使用插件连接远程 Docker (Dockerfile)

    IDEA 使用插件连接远程 Docker 测试地址 https://github.com/Rain-with-me/JavaStudyCode/tree/main/2-spring…

    数据库 2023年6月14日
    0166
  • 熟悉javaEE主流框架Spring boot,Spring Cloud,Mybatis,了解Servlet,JDBC

    什么是Tomcat 阿帕奇提供的小型服务器软件,支持servet和jsp规范 lib包:存放jar包 WabApp:发布项目的目录 work:jsp编译生成。class的目录 LO…

    数据库 2023年6月16日
    0119
  • 实时流计算—数据采集工具Flume

    Flume最早是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。 Flume特性 1.提供上下文路由特征 2.Flume的管道是基于事务,保证…

    数据库 2023年6月6日
    0274
  • MySQL max() min() 函数取值错误

    今天日志出现异常,一步一步debug发现SQL语句返回值出错,进一步发现是max()函数返回出错。点击跳转解决办法,赶时间的朋友可以去获得答案。当然我还是希望大伙看看原由。 sel…

    数据库 2023年6月16日
    0186
  • MySQL 存储过程和函数

    创建存储过程和函数 创建存储过程和函数就是将经常使用的一组 SQL 语句组合在一起,并将这些 SQL 语句当作一个整体存储在 MySQL 服务器 CREATE PROCEDURE …

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