一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

java中list集合去除重复对象的实现

时间:2017-01-24 编辑:简简单单 来源:一聚教程网

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

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

实体类

 

 代码如下复制代码

publicclassStudent {

 

publicString id;

publicString name;

publicStudent() {

}

publicStudent(String id,String name) {

this.id = id;

this.name = name;

}

publicString getId() {

returnid;

}

publicvoidsetId(String id) {

this.id = id;

}

publicString getName() {

returnname;

}

publicvoidsetName(String name) {

this.name = name;

}

@Override

publicbooleanequals(Object obj) {

Student s=(Student)obj;

returnid.equals(s.id) && name.equals(s.name);

}

@Override

publicinthashCode() {

String in = id + name;

returnin.hashCode();

}

}

 

测试类

 

 代码如下复制代码

importjava.util.ArrayList;

importjava.util.HashSet;

importjava.util.List;

importjava.util.Set;

 

publicclassQuSame {

  

 publicstaticvoidmain(String[] args) {

 Liststu =newArrayList();

 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集合保存的是引用不同地址的对象

 Setts =newHashSet();

 ts.addAll(stu);

  

 for(Student student : ts) {

  System.out.println(student.getId()+"-"+student.getName());

 }

 }

}

 

热门栏目