JAVA 小抄 -000- 初始
JAVA小抄旨在不使用语言或者使用最简练的语言,让Code自己展示用法与示例。例如:工作中常用的Stream相关的工具类中的方法
这个系列记录笔者在工作与学习中学习到优秀代码及设计。
版权声明: 本文为 InfoQ 作者【NoNoGirl】的原创文章。
原文链接:【http://xie.infoq.cn/article/aa493519820ad2787e102cd6e】。文章转载请联系作者。
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))); }
这个系列记录笔者在工作与学习中学习到优秀代码及设计。
版权声明: 本文为 InfoQ 作者【NoNoGirl】的原创文章。
原文链接:【http://xie.infoq.cn/article/aa493519820ad2787e102cd6e】。文章转载请联系作者。
还未添加个人签名 2018.09.17 加入
还未添加个人简介
促进软件开发及相关领域知识与创新的传播
评论