¿Qué tipo de Lista <E> devuelve Collectors.toList ()?

Estoy leyendoEstado de la Lambda: Edición de Bibliotecas, y me sorprende una declaración:

Debajo de la secciónCorrientes, hay lo siguiente:

List<Shape> blue = shapes.stream()
                         .filter(s -> s.getColor() == BLUE)
                         .collect(Collectors.toList());

El documento no indica quéshapes en realidad lo es, y no sé si incluso importa.

Lo que me confunde es lo siguiente: qué tipo de concretoList ¿vuelve este bloque de código?

Asigna la variable a unList<Shape>, lo cual está completamente bien.stream() nifilter() decide qué tipo de lista usar.Collectors.toList() ninguno especifica el tipo concreto deList.

Y quéhormigón tipo (subclase) deList se está utilizando aquí? ¿Hay alguna garantía?

Respuestas a la pregunta(3)

Su respuesta a la pregunta