Olá, Aldeny, como vai?
O código atende muito bem aos requisitos do desafio proposto, utilizando corretamente a classe ArrayList para o gerenciamento dinâmico dos nomes e a estrutura de repetição while para manter o programa em execução. É interessante notar que o uso do método equalsIgnoreCase e a lógica de verificação com o laço for garantem que o sistema não duplique nomes independentemente do uso de letras maiúsculas ou minúsculas, o que demonstra uma boa atenção aos detalhes de usabilidade.
Parabéns por concluir o exercício e por compartilhar sua solução com a comunidade, continue praticando os conceitos de coleções e laços de repetição.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!