list集合去除重複對象

對象重複是指對象裏面的變量的值都相等,並不定是地址java

public class Student {  
02.  
03.public String id;  
04.public String name;  
05.public Student() {  
06.}  
07.public Student(String id,String name) {  
08.this.id = id;  
09.this.name = name;  
10.}  
11.public String getId() {  
12.return id;  
13.}  
14.public void setId(String id) {  
15.this.id = id;  
16.}  
17.public String getName() {  
18.return name;  
19.}  
20.public void setName(String name) {  
21.this.name = name;  
22.}  
23.@Override  
24.public boolean equals(Object obj) {  
25.Student s=(Student)obj;   
26.return id.equals(s.id) && name.equals(s.name);   
27.}  
28.@Override  
29.public int hashCode() {  
30.String in = id + name;  
31.return in.hashCode();  
32.}  
33.}
import java.util.ArrayList;  
02.import java.util.HashSet;  
03.import java.util.List;  
04.import java.util.Set;  
05.  
06.public class QuSame {  
07.      
08.    public static void main(String[] args) {  
09.        List<Student> stu = new ArrayList<Student>();  
10.        stu.add(new Student("1","yi"));  
11.        stu.add(new Student("3","san"));  
12.        stu.add(new Student("3","san"));  
13.        stu.add(new Student("2","er"));  
14.        stu.add(new Student("2","er"));  
15.        //set集合保存的是引用不一樣地址的對象  
16.        Set<Student> ts = new HashSet<Student>();  
17.        ts.addAll(stu);  
18.          
19.        for (Student student : ts) {  
20.            System.out.println(student.getId()+"-"+student.getName());  
21.        }  
22.    }  
23.}

 

list集合存儲的類型是基礎類型還比較好辦,直接把list集合轉換成set集合就會自動去除。 當set集合存儲的是對象類型時,須要在對象的實體類裏面重寫public boolean equals(Object obj) {} 和 public int hashCode() {} 兩個方法。ide

相關文章
相關標籤/搜索