天天看點

List清單使用HashSet實作資料去重小技巧

在資料庫中,可以使用distinct來去重,不過加上distinct會影響一定的性能,是以在一些特殊情況,資料量不是很大的情況,可以利用java集合Set的特性,Set集合資料是不重複的來進行資料過濾

public <T> List<T> distinctListBySet(List<T> list) {
  return new ArrayList<T>(new HashSet<T>(list));
}      
public <T> List<T> distinctListBySetOrder(List<T> originList) {
    List<T> newList = new ArrayList<T>();
    Set<T> sortSet = new HashSet<T>();
    for (T entity: originList) {
        if (sortSet.add(entity)) {
            newList.add(entity);
        }
    }
    return newList;
}