我有以下代码:
strings.stream().map( i->i.toUpperCase()).collect(Collectors.toList());
上面的代码返回List
我想实现将返回数组的模拟。
没有额外的toArray
方法调用是否可行?
答案 0 :(得分:6)
Stream
课程有两种toArray
方法 - 以下是with Stream::toArray(IntFunction)`示例:
String[] array = strings.stream().toArray(String[]::new);
答案 1 :(得分:3)
如果你真的想要一个收集器(例如用作groupingBy
的下游),你可以用非常简单的方式构建它:
Collector<String, ?, String[]> toArrayCollector =
Collectors.collectingAndThen(Collectors.toList(),
list -> list.toArray(new String[list.size()]));