android去除list集合重複元素
阿新 • • 發佈:2019-02-19
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().