在写代码的时候经常会碰到一个东西.我拿到了一个列表,我要提取这个列表的某一个字段,但是每次都要判空,然后stream,map,filter,collect.很繁琐,所以把常用的方法封装起来,并且返回Set来去重
public static <T, C> Set<C> collectDistinctFields(Collection<T> dataList, Function<T, C> fieldProvider) {
if (CollUtil.isEmpty(dataList)) {
return new HashSet<>(0);
}
return dataList.stream().map(fieldProvider).filter(Objects::nonNull).collect(Collectors.toSet());
}