list集合去除重复对象的实现
对象重复是指对象里面的变量的值都相等,并不定是地址。list集合存储的类型是基础类型还比较好办,直接把list集合转换成set集合就会自动去除。
当set集合存储的是对象类型时,需要在对象的实体类里面重写publicbooleanequals(Objectobj){}和publicinthashCode(){}两个方法。
实体类
publicclassStudent{
publicStringid;
publicStringname;
publicStudent(){
}
publicStudent(Stringid,Stringname){
this.id=id;
this.name=name;
}
publicStringgetId(){
returnid;
}
publicvoidsetId(Stringid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
@Override
publicbooleanequals(Objectobj){
Students=(Student)obj;
returnid.equals(s.id)&&name.equals(s.name);
}
@Override
publicinthashCode(){
Stringin=id+name;
returnin.hashCode();
}
}
测试类
importjava.util.ArrayList;
importjava.util.HashSet;
importjava.util.List;
importjava.util.Set;
publicclassQuSame{
publicstaticvoidmain(String[]args){
List<Student>stu=newArrayList<Student>();
stu.add(newStudent("1","yi"));
stu.add(newStudent("3","san"));
stu.add(newStudent("3","san"));
stu.add(newStudent("2","er"));
stu.add(newStudent("2","er"));
//set集合保存的是引用不同地址的对象
Set<Student>ts=newHashSet<Student>();
ts.addAll(stu);
for(Studentstudent:ts){
System.out.println(student.getId()+"-"+student.getName());
}
}
}
以上这篇list集合去除重复对象的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。