我有一個(gè)List<TestBuilder> testBuilders; 測試有一個(gè)類型為測試的函數(shù)構(gòu)建我做了testBuilders.stream().map(Test::build()).collect()我想在上面收集array of Test i.e Test[]我不確定會(huì)發(fā)生什么collect function
2 回答

陪伴而非守候
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊
Stream::toArray
使用將項(xiàng)目序列打包到數(shù)組中的終端操作。但是,您必須定義一個(gè)提供的生成器IntFunction<A[]>
來分配返回?cái)?shù)組的類型:
Test[] array = testBuilders.stream().map(Test::build).toArray(size -> new Test[size]);
lambda 表達(dá)式size -> new Test[size]
應(yīng)替換為方法引用:
Test[] array = testBuilders.stream().map(Test::build).toArray(Test[]::new);

瀟瀟雨雨
TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以使用
whatever.stream().toArray(WhatEverClass[]::new);
WhatEverClass
根據(jù)該類型的對(duì)象的“任何”流為該類型的對(duì)象創(chuàng)建一個(gè)數(shù)組。因此:不需要collect()
任何東西。
添加回答
舉報(bào)
0/150
提交
取消