Que tipo de lista <E> retorna Collectors.toList ()?

estou lendoEstado do Lambda: Edição de Bibliotecase estou sendo surpreendido por uma declaração:

Sob a seçãoStreams, existe o seguinte:

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

O documento não indica o queshapes na verdade é, e eu não sei se isso importa.

O que me confunde é o seguinte: Que tipo de concretoList esse bloco de código retorna?

Ele atribui a variável a umList<Shape>, o que é completamente bom.stream() nemfilter() decida que tipo de lista usar.Collectors.toList() nem especifica o tipo concreto deList.

E daíconcreto tipo (subclasse) deList está sendo usado aqui? Existem garantias?

questionAnswers(3)

yourAnswerToTheQuestion