Collections Principiante

Convierte streams en arrays tipados con una referencia a método.

✕ 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);
¿Ves un problema con este código? Cuéntanos.
🎯

Tipado seguro

Sin cast a Object[] — el tipo del array es correcto.

🔗

Encadenable

Funciona al final de cualquier pipeline de stream.

📏

Conciso

Una sola expresión reemplaza el bucle manual.

Enfoque Antiguo
Filtro manual + copia
Enfoque Moderno
toArray(generator)
Desde JDK
8
Dificultad
Principiante
toArray tipado en streams
Disponible

Ampliamente disponible desde JDK 8 (marzo 2014)

El método toArray(IntFunction) crea un array correctamente tipado a partir de un stream. El generador (String[]::new) indica al stream qué tipo de array crear.