list特点:有序,可重复
set特点:无序,不可重复
所以利用这个特性,可将list的重复元素去除掉,请往下执行!
1.调用如下方法
/**
* 得到去除重复后的集合
* @param list
* @return
*/
private static List<User> getRemoveList(List<User> list){
Set set = new HashSet();
List<User> newList = new ArrayList<>();
for (Iterator iter = list.iterator(); iter.hasNext();){
User object = (User) iter.next();
if(set.add(object))
newList.add(object);
}
return newList;
}
2.实体类重写equals()和hashCode()
public class User {
private String name;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return name != null ? name.equals(user.name) : user.name == null;
}
@Override
public int hashCode() {
return name != null ? name.hashCode() : 0;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
注:如果使用android stuido,可以用Alt+Insert快捷键生成equals()和hashCode().