Was ist der einfachste/kürzeste Weg, einen Java 8 Stream
in ein Array umzuwandeln?
Antworten
Zu viele Anzeigen?
Thomas Pliakas
Punkte
99
Sie können einen benutzerdefinierten Collector erstellen, der einen Stream in ein Array konvertiert.
public static Collector toArray( IntFunction converter )
{
return Collectors.collectingAndThen(
Collectors.toList(),
list ->list.toArray( converter.apply( list.size() ) ) );
}
und eine schnelle Verwendung
List input = Arrays.asList( ..... );
String[] result = input.stream().
.collect( CustomCollectors.**toArray**( String[]::new ) );
Kunda
Punkte
451
Die Verwendung der Methode toArray(IntFunction generator)
ist tatsächlich eine sehr elegante und sichere Möglichkeit, einen Stream in ein Array desselben Typs des Streams umzuwandeln (oder genauer gesagt zu sammeln).
Wenn jedoch der Typ des zurückgegebenen Arrays nicht wichtig ist, ist es einfacher und kürzer, einfach die Methode toArray()
zu verwenden. Zum Beispiel:
Stream args = Stream.of(BigDecimal.ONE, "Zwei", 3);
System.out.printf("%s, %s, %s!", args.toArray());
Raj N
Punkte
249
Sai Tata
Punkte
51
Sagar Mal Shankhala
Punkte
315
- See previous answers
- Weitere Antworten anzeigen