public class Person {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (!(o instanceof Person))
return false;
Person person = (Person)o;
if (id != person.id) return false;
if (age != person.age) return false;
return name != null ? name.equals(person.name) : person.name == null;
}
@Override
public int hashCode() {
int result = id;
result = 31*result + (name != null ? name.hashCode() :0);
result = 31*age;
return result;
}
}
1.2 通过HashSet 去重 代码如下:
List<Person> persons = new ArrayList<Person>();
for (int i=0;i<3;i++){
Person person = new Person();
person.setId(i);
person.setName("ll");
persons.add(person);
}
for (int i=0;i<6;i++){
Person person = new Person();
person.setId(i);
person.setName("ll");
persons.add(person);
}
Log.e("去重前List个数",""+persons.size());
Set<Person> set = new HashSet<Person>(persons);
for (Person p: set){
Log.e("去重后对象:",""+p.getId() +" , "+p.getName());
}