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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM