去除重复数据
如果是基本数据类型:(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));
}
}