Collections Iniciante

Converta streams em arrays tipados com uma referência de método.

✕ 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);
Viu um problema com este código? Nos avise.
🎯

Tipo seguro

Sem cast de Object[] — o tipo do array está correto.

🔗

Encadeável

Funciona no final de qualquer pipeline de stream.

📏

Conciso

Uma expressão substitui o loop manual.

Abordagem Antiga
Cópia manual de array
Abordagem Moderna
toArray(generator)
Desde o JDK
8
Dificuldade
Iniciante
toArray tipado com streams
Disponível

Amplamente disponível desde o JDK 8 (março de 2014)

O método toArray(IntFunction) cria um array com tipo correto a partir de um stream. O gerador (String[]::new) indica ao stream qual tipo de array criar.

Compartilhar 𝕏 🦋 in