Oi, Pablo. Tudo bem com você?
Sua solução para o desafio ficou muito boa. Você usou o reduce para fazer a soma dos valores e depois calculou a média dividindo pelo tamanho da lista. Também utilizou min e max com Comparator para encontrar a menor e a maior nota, exatamente como a atividade pedia.
O mais legal é que você conseguiu resolver o desafio usando os recursos do stream sem complicar a solução. O reduce, principalmente, é um recurso bem interessante para entender como podemos trabalhar com os valores de uma coleção e chegar a um resultado a partir deles.
Você chegou a testar como o código se comporta se a lista de notas estiver vazia ao tentar buscar a menor e a maior nota com o orElseThrow?
Parabéns pelo excelente resultado e pela dedicação nos estudos. O fórum está sempre à disposição para o que precisar.
Para saber mais:
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!