Aqui está o texto com a gramática corrigida:
O que está acontecendo aí é o seguinte:
- O objeto "episodios" é transformado em uma Stream (episodios.stream()).
- Essa stream, depois, é coletada em um Mapa (Map), com a chave sendo um inteiro (Integer) e o valor sendo um número com pontos flutuantes (Double). O método para coletar a stream de episódios no mapa utiliza dois parâmetros: uma função classificadora (classifier) e uma downstream, que pode ser entendida como uma função de redução.
Traduzindo, o que esse método vai fazer é mapear todos os episódios, agrupando-os por temporadas, e para cada temporada ele vai calcular uma média do valor das avaliações da temporada, deixando você com um Map<Numero da temporada, Media de avaliações>.
E, na verdade, esse método "groupingBy" é um método da classe Collectors.