Collections Principiante

Converti gli stream in array tipizzati con un riferimento a metodo.

✕ Pre-Streams
List<String> list = getNames();
String[] arr = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
    arr[i] = list.get(i);
}
✓ Java 8+
String[] arr = getNames().stream()
    .filter(n -> n.length() > 3)
    .toArray(String[]::new);
Vedi un problema con questo codice? Faccelo sapere.
🎯

Type-safe

Nessun cast a Object[] — il tipo dell'array è corretto.

🔗

Concatenabile

Funziona alla fine di qualsiasi pipeline stream.

📏

Conciso

Un'espressione sostituisce il loop manuale.

Approccio Vecchio
Copia manuale dell'array
Approccio Moderno
toArray(generatore)
Dal JDK
8
Difficoltà
Principiante
Stream toArray tipizzato
Disponibile

Ampiamente disponibile dal JDK 8 (marzo 2014)

Il metodo toArray(IntFunction) crea un array correttamente tipizzato da uno stream. Il generatore (String[]::new) indica allo stream quale tipo di array creare.

Condividi 𝕏 🦋 in