Oi. To tentando fazer um cadastro de empresas, mas parece-me que não está adicionando. Já fiz diversas coisas, mas o problema persiste… ele não adiciona as empresas no HashSet.
import java.util.Set;
import java.util.HashSet;
import java.util.Scanner;
public class CadastroDeEmpresas
{
private Set<Empresa> empresas = new HashSet<Empresa>();
public CadastroDeEmpresas()
{
}
/**
* Metodo de adicao de emrpesas
* @param novaEmpresa A nova Empresa.
*/
public void adiciona(Empresa novaEmpresa)
{
System.out.println("Inserindo uma nova empresa.");
empresas.add(novaEmpresa);
}
/**
* Metoo que vai listar todas as empresas
*/
public void listaEmpresas()
{
System.out.println("Listando as " + empresas.size() + " empresas.\n");
for (int i = 0; i < empresas.size(); i++)
System.out.println("> " + empresas.toString());
System.out.println("\n\n");
}
public int numeroDeEmpresas()
{
return empresas.size();
}
/**
* Metodo main
*/
public static void main(String[] args)
{
String opcao;
do {
CadastroDeEmpresas cadastro = new CadastroDeEmpresas();
Scanner s = new Scanner(System.in);
int i = cadastro.numeroDeEmpresas();
System.out.println("O que deseja fazer? ( " + i + " )");
System.out.print(">> ");
opcao = s.next();
if (opcao.equals("adicionar")) {
System.out.println("Digite o nome da sua empresa: ");
String nome = s.next();
Empresa e = new Empresa(nome);
cadastro.adiciona(e);
}
else if (opcao.equals("listar")) {
System.out.println("Listando todas as empresas.\n");
cadastro.listaEmpresas();
}
else
System.out.println("Nao entendo o que voce quer dizer.\n");
} while (!opcao.equals("sair"));
}
}
Eu sei que ninguém gosta de ficar lendo código, por isso vou postar a parte que eu acredito que esteja dando erros:
Aqui acredito que esteja correto.
public void adiciona(Empresa novaEmpresa)
{
System.out.println("Inserindo uma nova empresa.");
empresas.add(novaEmpresa);
}
Acredito que o problema esteja aqui:
if (opcao.equals("adicionar")) {
System.out.println("Digite o nome da sua empresa: ");
String nome = s.next();
Empresa e = new Empresa(nome);
cadastro.adiciona(e);
}
Acontece que ele entra em tudo… ele diz que tá inserindo, mas na hora de listar, lista tudo em branco. E a quantidade que é mostrada na hora do usuário digitar o que quer fazer nunca muda, sempre fica 0, que é o tamanho do HashSet.
Não sou muito acostumado em programar com a main, porque uso BlueJ, por isso estou tentando. Foi mal.
Abraço.