Olá, João, como vai?
O seu código soluciona o desafio de maneira muito eficiente, utilizando corretamente a estrutura de lista para armazenar as notas e aplicando a lógica de filtragem para aceitar apenas valores entre 1 e 5. A realização do casting para double no momento da divisão foi uma decisão técnica correta para garantir que o resultado da média preserve as casas decimais necessárias para a precisão do sistema.
Parabéns por aplicar esses conceitos de forma tão clara e por compartilhar sua resolução no fórum, continue mantendo esse ótimo ritmo em seus estudos de Java.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!