Collections Einsteiger

Streams mit einer Methodenreferenz in typisierte Arrays umwandeln.

✕ Pre-Streams
List<String> list = getNames();
List<String> filtered = new ArrayList<>();
for (String n : list) {
    if (n.length() > 3) {
        filtered.add(n);
    }
}
String[] arr = filtered.toArray(new String[0]);
✓ Java 8+
String[] arr = getNames().stream()
    .filter(n -> n.length() > 3)
    .toArray(String[]::new);
Problem mit diesem Code entdeckt? Sag uns Bescheid.
🎯

Typsicher

Kein Object[]-Cast — der Array-Typ ist korrekt.

🔗

Verkettbar

Funktioniert am Ende jeder Stream-Pipeline.

📏

Prägnant

Ein einziger Ausdruck ersetzt die manuelle Schleife.

Alter Ansatz
Manuelle Filterung + Kopie
Moderner Ansatz
toArray(generator)
Seit JDK
8
Schwierigkeitsgrad
Einsteiger
Typisiertes Stream-toArray
Verfügbar

Weitgehend verfügbar seit JDK 8 (März 2014)

Die Methode toArray(IntFunction) erstellt ein korrekt typisiertes Array aus einem Stream. Der Generator (String[]::new) teilt dem Stream mit, welchen Array-Typ er erstellen soll.