去除列表中的重复数据

来源:互联网 发布:马士兵javascript 编辑:程序博客网 时间:2024/04/29 18:35

去除重复数据

如果是基本数据类型:(String类型也是如此)

List<Integer> list = new ArrayList<Integer>();
  List<Integer> list2 = new ArrayList<Integer>();
  list.add(1);
  list.add(1);
  list.add(2);
  list.add(2);
  list.add(2);
  list.add(3);
  list.add(3);
  list.add(3);
  list.add(4);
  list.add(4);

方法一:
  //set是无序存储
  Set<Integer> set = new HashSet<Integer>();
  for(int i = 0; i < list.size(); i++){
   set.add(list.get(i));
  }

方法二;
  //有序的去重
  for(int i = 0; i < list.size(); i++){
   if(list2.contains(list.get(i))){
    continue;
   }
   else{
    list2.add(list.get(i));
   }
  }
  

如果是对象:(Student对象)

public class Student {
 private String name;
 private int age;
 private String sex;
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public String getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }

/**必须重写equals和hashCode方法
 public boolean equals(Object o){
  if(this==o){
   return true;
  }
   
  if(!(o instanceof Student))return false;
  final Student s = (Student) o;
  if(s.getName().equals(this.name)&&s.getAge()==this.age&&s.getSex().equals(this.sex)){
   return true;
  }
  else return false;
 }
 public int hashCode(){
  int result;
  result = (name==null?0:name.hashCode());
  result = 29 * result + age;
  return result;
  
 }
 
}

 

 

对象去重:

 Student student1 = new Student();
  student1.setAge(12);
  student1.setName("hary");
  student1.setSex("女");
  Student student2 = new Student();
  student2.setAge(12);
  student2.setName("hary");
  student2.setSex("女");
  
  Set<Student> set = new HashSet<Student>();
  set.add(student1);
  set.add(student2);
  
  
  List<Student> list = new ArrayList<Student>();
  List<Student> list2 = new ArrayList<Student>();
  list.add(student1);
  list.add(student2);
  for(int i = 0; i < list.size();i++){
   if(list2.contains(list.get(i))){
    continue;
   }
   else{
    list2.add(list.get(i));
   }
  }