zoukankan      html  css  js  c++  java
  • list集合去除重复对象的实现

    下面小编就为大家带来一篇list集合去除重复对象的实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

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

    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.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集合去除重复对象的实现就是小编分享给大家的全部内容了,希望能给大家一个参考

  • 相关阅读:
    不同地区Android开发者使用哪些设备测试APP?
    IIS6、IIS7.5设置网站默认首页方法(Directory Listing Denied)
    大数据正在改变我们的生活
    如何在MySQL中使用explain查询SQL的执行计划?
    整合spring cloud云架构
    对SQL 优化,提升性能!
    传统分布式架构如何进行容器化升级
    Android开发实践:Android.mk模板
    如何从代码层面优化系统性能
    德国又出超实用的厨房神器
  • 原文地址:https://www.cnblogs.com/qianzf/p/7598967.html
Copyright © 2011-2022 走看看