收集器 which returns 数组
Collector which returns array
我有以下代码:
strings.stream().map( i->i.toUpperCase()).collect(Collectors.toList());
上面的代码returns List
我想实现模拟return数组。
是否可以不调用额外的 toArray
方法?
Stream
class 有两个 toArray
方法 - 这里是一个例子 with Stream::toArray(IntFunction)`:
String[] array = strings.stream().toArray(String[]::new);
如果你真的想要一个收集器(例如用作 groupingBy
的下游),你可以用非常简单的方式构造它:
Collector<String, ?, String[]> toArrayCollector =
Collectors.collectingAndThen(Collectors.toList(),
list -> list.toArray(new String[list.size()]));
我有以下代码:
strings.stream().map( i->i.toUpperCase()).collect(Collectors.toList());
上面的代码returns List
我想实现模拟return数组。
是否可以不调用额外的 toArray
方法?
Stream
class 有两个 toArray
方法 - 这里是一个例子 with Stream::toArray(IntFunction)`:
String[] array = strings.stream().toArray(String[]::new);
如果你真的想要一个收集器(例如用作 groupingBy
的下游),你可以用非常简单的方式构造它:
Collector<String, ?, String[]> toArrayCollector =
Collectors.collectingAndThen(Collectors.toList(),
list -> list.toArray(new String[list.size()]));