如何将流的结果收集到Java 8中的自定义对象数组中

我有一个List<TestBuilder> testBuilders; 测试有一个类型为测试的函数构建

我做了testBuilders.stream().map(Test::build()).collect()

我想在上面收集array of Test  i.e Test[]

我不确定会发生什么collect function


红糖糍粑
浏览 80回答 2
2回答

陪伴而非守候

Stream::toArray使用将项目序列打包到数组中的终端操作。但是,您必须定义一个提供的生成器IntFunction<A[]>来分配返回数组的类型:Test[]&nbsp;array&nbsp;=&nbsp;testBuilders.stream().map(Test::build).toArray(size&nbsp;->&nbsp;new&nbsp;Test[size]);lambda 表达式size -> new Test[size]应替换为方法引用:Test[]&nbsp;array&nbsp;=&nbsp;testBuilders.stream().map(Test::build).toArray(Test[]::new);

潇潇雨雨

您可以使用whatever.stream().toArray(WhatEverClass[]::new);WhatEverClass根据该类型的对象的“任何”流为该类型的对象创建一个数组。因此:不需要collect()任何东西。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java