写点什么

JAVA 小抄 -000- 初始

用户头像
NoNoGirl
关注
发布于: 2020 年 05 月 06 日
JAVA小抄-000-初始

JAVA小抄旨在不使用语言或者使用最简练的语言,让Code自己展示用法与示例。例如:工作中常用的Stream相关的工具类中的方法



/**
* 把List里面的对象的某个属性提取出来
*/
public static <T, R> List<R> toList(Collection<T> list, Function<T, R> function) {
return toCollection(list, function, ArrayList::new);
}
/**
* 把List里面的对象的某个属性提取出来
*/
public static <T, R> List<R> toList(Stream<T> list, Function<T, R> function) {
return toCollection(list, function, ArrayList::new);
}
/**
* 把List里面的对象的某个属性提取出来
*/
public static <T, R, C extends Collection<R>> C toCollection(Collection<T> list, Function<T, R> function, Supplier<C> collectionFactory) {
if (CollectionUtils.isEmpty(list)) {
return collectionFactory.get();
}
return toCollection(list.stream(), function, collectionFactory);
}

/**
* 把stream里面的对象的某个属性提取出来
*/
public static <T, R, C extends Collection<R>> C toCollection(Stream<T> stream, Function<T, R> function, Supplier<C> collectionFactory) {
return stream.collect(Collectors.mapping(function, Collectors.toCollection(collectionFactory)));
}




这个系列记录笔者在工作与学习中学习到优秀代码及设计。

发布于: 2020 年 05 月 06 日阅读数: 47
用户头像

NoNoGirl

关注

还未添加个人签名 2018.09.17 加入

还未添加个人简介

评论

发布
暂无评论
JAVA小抄-000-初始