1. 程式人生 > >list集合去除重復對象的實現

list集合去除重復對象的實現

ide out 實體 color 看看吧 index java span dex

下面小編就為大家帶來一篇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集合去除重復對象的實現就是小編分享給大家的全部內容了,希望能給大家一個參考

list集合去除重復對象的實現