/**
*
* Description: JDK1.8的Stream操作工具類
* @author linan.du
* @date 2019年7月18日
* @version 1.0
*/
public class StreamUtil {
/**
*
* Description: stream去重時,調用它可免除 泛型重寫equals和hashcode方法
*
* 調用示例:
* reportPoolList是查詢出來的List<ReportPool>集合,通過過濾,對postCode屬性(崗位代碼)進行去重,返回
* List<ReportPool> distinctElements = reportPoolList.stream()
* .filter(StreamUtil.distinctByKey(p -> p.getPostcode()))
* .collect(Collectors.toList());
*
* @param keyExtractor
* @return
* @author linan.du
* @date 2019年7月18日
*
*/
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Set<Object> seen = ConcurrentHashMap.newKeySet();
return t -> seen.add(keyExtractor.apply(t));
}
}
- 補充
// 您上傳文件中第1、2、5行郵箱格式有誤,請調後再次上傳
StringBuffer sb = new StringBuffer();
sb.append("您上傳文件中第");
errorList.stream().forEach(e -> sb.append(e.getSeq() + "、"));
sb.deleteCharAt(sb.length() - 1).append("行郵箱格式有誤,請調後再次上傳");