2015-05-21 2 views
3

У меня есть следующий код:коллектор, который возвращает массив

strings.stream().map(i->i.toUpperCase()).collect(Collectors.toList()); 

Код выше возвращает List

Я хочу, чтобы достичь аналог, который будет возвращать массив.

Возможно ли без дополнительного toArray метод вызова?

+1

_ "без дополнительного вызова метода toArray" _ Вместо того, чтобы иметь '.collect (...)', у вас есть .toArray (...) '. И его в документе: https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#toArray-java.util.function.IntFunction- –

ответ

3

Если вы действительно хотите, коллектор (например, для использования в качестве вниз для groupingBy), вы можете построить его в довольно простом способе :

Collector<String, ?, String[]> toArrayCollector = 
     Collectors.collectingAndThen(Collectors.toList(), 
       list -> list.toArray(new String[list.size()])); 
Смежные вопросы