list集合去除重复对象的实现

 更新时间:2017年01月17日 08:54:54   投稿:jingxian  
下面小编就为大家带来一篇list集合去除重复对象的实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

对象重复是指对象里面的变量的值都相等,并不定是地址。list集合存储的类型是基础类型还比较好办,直接把list集合转换成set集合就会自动去除。

当set集合存储的是对象类型时,需要在对象的实体类里面重写public boolean equals(Object obj) {} 和 public int hashCode() {} 两个方法。

实体类

public class Student {

public String id;
public String name;
public Student() {
}
public Student(String id,String name) {
this.id = id;
this.name = 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;
}
@Override
public boolean equals(Object obj) {
Student s=(Student)obj; 
return id.equals(s.id) && name.equals(s.name); 
}
@Override
public int hashCode() {
String in = id + name;
return in.hashCode();
}
}

测试类

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class QuSame {
 
 public static void main(String[] args) {
 List<Student> stu = new ArrayList<Student>();
 stu.add(new Student("1","yi"));
 stu.add(new Student("3","san"));
 stu.add(new Student("3","san"));
 stu.add(new Student("2","er"));
 stu.add(new Student("2","er"));
 //set集合保存的是引用不同地址的对象
 Set<Student> ts = new HashSet<Student>();
 ts.addAll(stu);
 
 for (Student student : ts) {
  System.out.println(student.getId()+"-"+student.getName());
 }
 }
}

以上这篇list集合去除重复对象的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决FileWriter 写入文本不换行的问题

    解决FileWriter 写入文本不换行的问题

    这篇文章主要介绍了解决FileWriter 写入文本不换行的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • SpringBoot项目打包war包时无法运行问题的解决方式

    SpringBoot项目打包war包时无法运行问题的解决方式

    在开发工程中,使用启动类启动能够正常启动并测试,下面这篇文章主要给大家介绍了关于SpringBoot项目打包war包时无法运行问题的解决方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • idea启动tomcat控制台中文乱码的三种情况解决

    idea启动tomcat控制台中文乱码的三种情况解决

    本文主要介绍了idea启动tomcat控制台中文乱码,主要包括三种情况,分别介绍了一下解决方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • JAVA及相关字符集编码问题研究分享

    JAVA及相关字符集编码问题研究分享

    对于JAVA学习,或多或少都会遇到这样的问题:编码基本知识,java,系统软件,url,工具软件等
    2014-10-10
  • Java中String字符串常量池和intern方法源码分析

    Java中String字符串常量池和intern方法源码分析

    在之前的文章中,小编给大家介绍了String字符串的不可变性及其实现原理,其中给大家提到了字符串常量池的概念,那么什么是常量池,String字符串与常量池有什么关系,本文给大家唠唠字符串常量池及String#intern()方法的作用,需要的朋友可以参考下
    2023-05-05
  • hibernate批量操作实例详解

    hibernate批量操作实例详解

    这篇文章主要介绍了hibernate批量操作,结合实例形式分析了Hibernate实现批量插入,更新及删除等操作的具体实现技巧,需要的朋友可以参考下
    2016-03-03
  • 详解elasticsearch之metric聚合实现示例

    详解elasticsearch之metric聚合实现示例

    这篇文章主要为大家介绍了elasticsearch之metric聚合实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Java常见内存溢出异常分析与解决

    Java常见内存溢出异常分析与解决

    本篇文章主要分析了JAVA程序内存溢出问题原因,较为详细的说明了java导致程序内存溢出的原因与解决方法,感兴趣的小伙伴们可以参考一下。
    2016-10-10
  • Java Date类常用示例_动力节点Java学院整理

    Java Date类常用示例_动力节点Java学院整理

    在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。这里简单介绍一下Date类的使用,需要的朋友可以参考下
    2017-05-05
  • springboot整合Mybatis、JPA、Redis的示例代码

    springboot整合Mybatis、JPA、Redis的示例代码

    这篇文章主要介绍了springboot整合Mybatis、JPA、Redis的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论