为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

红糖糍粑 2022-11-02 16:12:45
我有一个List<TestBuilder> testBuilders; 测试有一个类型为测试的函数构建我做了testBuilders.stream().map(Test::build()).collect()我想在上面收集array of Test  i.e Test[]我不确定会发生什么collect function
查看完整描述

2 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

Stream::toArray使用将项目序列打包到数组中的终端操作。但是,您必须定义一个提供的生成器IntFunction<A[]>来分配返回数组的类型:

Test[] array = testBuilders.stream().map(Test::build).toArray(size -> new Test[size]);

lambda 表达式size -> new Test[size]应替换为方法引用:

Test[] array = testBuilders.stream().map(Test::build).toArray(Test[]::new);


查看完整回答
反对 回复 2022-11-02
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

您可以使用

whatever.stream().toArray(WhatEverClass[]::new);

WhatEverClass根据该类型的对象的“任何”流为该类型的对象创建一个数组。因此:不需要collect()任何东西。


查看完整回答
反对 回复 2022-11-02
  • 2 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号