【发布时间】:2020-07-27 14:23:44
【问题描述】:
我有两个列表 A 和 B。我想将它们合并并再次流以形成一个数组。
我目前正在做:
List<String> aggregate = Stream.concat(A.stream(), B.stream()).collect(Collectors.toList());
String[] final = aggregate.stream().limit(10).collect(Collectors.toList()).toArray(new String[10]);
在这里,我有两个中间列表,我只是用来获取最终数组。有没有办法可以消除这两个 collect(Collectors.toList()) 并将其写在一行中?
谢谢
【问题讨论】:
-
Stream.concat(A.stream(), B.stream()).limit(10).toArray(String[]::new); -
谢谢,我收到以下编译错误: Stream
类型中的 toArray(IntFunction) 方法不适用于参数 (String[]) 编辑:我的错误,我没看到你的变化!谢谢它的工作 -
即使你有什么,你为什么要
collect,然后又是stream。 在Stream.concat之后流式传输内容有什么意义?另外final是关键字!
标签: java arrays java-8 java-stream