1
resposta

[Projeto] Sistema de controle de acesso a convidados

import java.util.HashSet;
import java.util.Scanner;

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

        Scanner leitura = new Scanner(System.in);
        Scanner scanner = new Scanner(System.in);

        HashSet<String> convidados = new HashSet<>();

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

            if (entrada.equalsIgnoreCase("sair")) {
                System.out.println("Programa finalizado. Total de convidados: " + convidados.size());
                break;
            }

            if (entrada.equalsIgnoreCase("ver")) {
                System.out.println("Lista atualizada de convidados: " + convidados);
                continue;
            }

            String nome = entrada.toLowerCase();

            boolean adicionado = convidados.add(nome);

            if (adicionado) {
                System.out.println(entrada + " foi adicionado(a) à lista de convidados.");
            } else {
                System.out.println("O nome " + entrada + " já foi adicionado à lista de convidados.");
            }
        }
        scanner.close();
    }
}

Saída:

Digite o nome do convidado (ou 'ver' para visualizar a lista, 'sair' para terminar): Maria
Maria foi adicionado(a) à lista de convidados.
Digite o nome do convidado (ou 'ver' para visualizar a lista, 'sair' para terminar): João
João foi adicionado(a) à lista de convidados.
Digite o nome do convidado (ou 'ver' para visualizar a lista, 'sair' para terminar): Maria
O nome Maria já foi adicionado à lista de convidados.
Digite o nome do convidado (ou 'ver' para visualizar a lista, 'sair' para terminar): ver
Lista atualizada de convidados: [joão, maria]
Digite o nome do convidado (ou 'ver' para visualizar a lista, 'sair' para terminar): sair
Programa finalizado. Total de convidados: 2

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Olá, Aline, como vai?

A estrutura do loop, o uso do HashSet e o controle de fluxo com os comandos ver e sair estão adequados para o sistema proposto.

Há apenas dois pontos que vale considerar. O primeiro é que há dois objetos Scanner sendo criados, mas apenas um é utilizado, então você pode remover o leitura sem impacto no funcionamento. O segundo é que, ao converter todos os nomes para minúsculas antes de armazená-los, a lista exibida mostrará tudo em lowercase, o que é diferente do exemplo de saída do enunciado. Caso deseje manter o nome exatamente como foi digitado, você pode guardar o texto original e ainda assim verificar duplicidade ignorando maiúsculas e minúsculas.

Seu exercício está muito bem desenvolvido e demonstra domínio do uso de coleções e loops. Obrigado por compartilhar e continue mostrando seus códigos por aqui. O fórum está à disposição.

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