Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução do Desafio

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        String entrada;
        ArrayList<String> convidados = new ArrayList<>();

        Scanner scanner = new Scanner(System.in);

        do {
            System.out.print("Digite o nome do convidado (ou 'ver' para visualizar a lista, 'sair' para terminar): ");
            entrada = scanner.nextLine();

            if (entrada.equals("sair")) {
                System.out.println("Programa Finalizado.");
                break;
            } else if (entrada.equals("ver")) {
                System.out.println("Lista atualizada de convidados: " + convidados);

            } else if (ignorarMaiusculaMinuscula(convidados, entrada)) {
                System.out.println("O nome " + entrada + " já está na lista de convidados");
            } else {
                convidados.add(entrada);
                System.out.println(entrada + " foi adicionado à lista de convidados.");
            }


        } while (!entrada.equals("sair"));
        
        scanner.close();

    }

    public static boolean ignorarMaiusculaMinuscula(ArrayList<String> lista, String str) {
        for (String s : lista) {
            if (str.equalsIgnoreCase(s)) {
                return true;
            }
        }
        return false;
    }


}


1 resposta

Olá, Pablo! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou o ArrayList para gerenciar convidados em Java, utilizou muito bem a função auxiliar para ignorar maiúsculas e minúsculas ao validar duplicidade e ainda compreendeu a importância da interação contínua com o usuário via Scanner para tornar o programa dinâmico.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é permitir que o usuário remova convidados da lista, tornando o programa mais completo. Assim:

else if (entrada.equals("remover")) {
    System.out.print("Digite o nome do convidado que deseja remover: ");
    String remover = scanner.nextLine();
    if (ignorarMaiusculaMinuscula(convidados, remover)) {
        convidados.removeIf(s -> s.equalsIgnoreCase(remover));
        System.out.println(remover + " foi removido da lista.");
    } else {
        System.out.println("O nome " + remover + " não está na lista.");
    }
}

Isso faz com que o usuário tenha maior controle sobre a lista de convidados.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Validar entradas: impedir que nomes vazios sejam adicionados.
  • Encapsular lógica em métodos: deixar o main mais limpo e organizado.
  • Exibir lista formatada: mostrar cada convidado em uma linha para melhor leitura.

Ah, uma pergunta: Você acha que seria mais interessante evoluir esse programa para incluir opções de remoção e edição de convidados ou prefere mantê-lo apenas com inserção e visualização?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!