我是靠谱客的博主 碧蓝过客,最近开发中收集的这篇文章主要介绍Stream.toArray,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Object[] toArray()
 A[] toArray(IntFunction generator)

简单地说这个方法就是把流转为数组。要把流转为集合可以使用collect方法,把流转为数组就用toArray方法。

无参方法返回的时候一个Object对象数组,有参数的方法返回数组数据类型根据该方法参数函数定义的数据类型来确定。Generator函数用来生成一个数组数据类型。

看例子:

void stream_toArray() {
Object[] obarray = Stream.of("aa","bb","cc").toArray();
int[] array = IntStream.of(12, 4, 4, 6, 10, 3, 6, 8, 9).toArray();
long[] loarray = Stream.of("43","55","23","25","65").mapToLong(a -> Long.parseLong(a)).toArray();
}

第一行代码,通过of方法直接生成一个流,然后直接toArray,返回的肯定是Object类型的数组,不论流中保存的是什么类型的元素都是返回Object类型数组。

第二行代码,这里使用IntStraem的of方法生成的是IntStream流,然后使用toArray方法返回的就是int类型的数组,LongStream和DoubleStream也可以生成确定数据类型的数组。

第三行代码,其实就是通过mapToLong方法把普通流转化为LongStream。

上面示例中第一行代码,如果不想返回Object对象数组,我就想指定数组类型为String怎么办?看下面代码:

String[] strArray = Stream.of("aa","bb","cc").toArray(String[]::new);

这个时候就用到了带参数的toArray方法了,这个方法的参数可以指定返回数组的数据类型。

再来2个例子:

Integer[] intArray = Stream.of(12, 4, 4, 6, 10, 3, 6, 8, 9).toArray(Integer[]::new);
User[] userArray = Stream.of(new User("111@qq.com","北京"),new User("222@qq.com","shanghai")).toArray(User[]::new);

最后这个例子很直接的诠释了带参数toArray方法的重要性,就是我可以把任何数据类型的流转为以其相同数据类型的数组。

最后

以上就是碧蓝过客为你收集整理的Stream.toArray的全部内容,希望文章能够帮你解决Stream.toArray所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部