Java8使用stream進行去重操作

/**
 * 通過列表中對象的某個字段進行去重
 *
 * @param keyExtractor
 * @param <T>
 * @return
 */
private <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
    Set<Object> seen = ConcurrentHashMap.newKeySet();
    return t -> seen.add(keyExtractor.apply(t));
}
// 根據機構名稱進行列表去重
list = list.stream().filter(distinctByKey(ProdCustserv::getJGNAME)).collect(Collectors.toList());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章