Estou diante de um problema…preciso guardar vários objetos dentro de um vetor e depois consultar um dos atributos da classe
Vou tentar explicar a ideia da questão que estou fazendo…na questão tenho uma Classe pedidos, onde estão os atributos(um dos atributos é numeroPedido), com seus referidos getters e setters; uma classe principal onde o usuário pode fazer vários pedidos e estes pedidos devem sendo armazenados em um vetor, para que depois a partir do numero do pedido o usuário possa visualizar as informações…
Alguém tem alguma sugestão, para que eu possa resolver esse problema???
ou então vc pode utilizar array de objetos…depende do que realmente você irá precisar na aplicação…
classe[] obj;
obj = new Classe[tamanho];
obj[indice] = new Classe(itemAserPedido);
mas dae vc tem que definir o número máximo de pedidos que um cliente poderá fazer. Caso não queira ter número máximo, prefira usar a outra sugestão de usar ArrayList.
Para essa situação, Listas não são boas porque você vai fazer buscas randômicas (a não ser que o “id” seja o índice dele na lista).
Minha solução: Ou você usa um Set e sobrescreve o equals da sua classe para retornar true quando o “id”(numeroPedido) for igual, ou usa a solução do Map que é uma boa pedida também.
[code]while(opcao != 3)
{
if(opcao == 1)
{
PedidoPizza p = new PedidoPizza();
p.setTamanho(Integer.parseInt(JOptionPane.showInputDialog("1 - Pequena \n2 - Media " +
“\n3 - Grande \n4 - Família \nEntre com numero referente ao tamanho da pizza”)));
p.setSaborPizza(Integer.parseInt(JOptionPane.showInputDialog("1 - Portuguesa \n2 - [Quatro Queijos " +
“\n3 - Mista \n4 - Calabresa \n5 - Mussarela \n6 - Marguerita \nEntre com numero referente ao sabor da pizza”)));
p.setBorda(Integer.parseInt(JOptionPane.showInputDialog("Com Borda: " +
"\n1 - Sim \n2 - Não ")));
p.setMassa(Integer.parseInt(JOptionPane.showInputDialog(“Tipo de Massa: \n1 - Tradicional \n2 - Recheada”)));
System.out.println(p.getNumPedido());
listaPedidos.add(p);
}
if(opcao == 2)
{
numeroPedido = Integer.parseInt(JOptionPane.showInputDialog("Entre com o numero do pedido: "));
for(int i = 0; i <listaPedidos.size() ; i++)
{
if(?????)
{
}
}
}
[/code]
Carissimos,
Resolvi usar o ArrayList, fiz tudo conforme indicado aqui…só que eis o meu problema; eu não sei como acessar o atributo “numeroPedido” do meu objeto…ah, aos que sugeriram o usar o Map, gostaria de pedi que colocasse um exemplo do uso dele, pois não sei como usar-lo
numPedido é estático. Pertence à classe e não a objetos. Este atributo será copartilhado por todas as instâncias desta classe.
Se realmente quer acessar este valor, é só escrever nomeDaClasse.numPedido e só…
eu tb acho…
Poderia criar uma classe Pedido e relacionar com Pizza(M x N) e gerar uma classe associativa… e etc… caso interesse a ela podemos ajuda-la tb nisso
vlw
Realmente esse atributo não pode ser estático…havia colocado ele estático pois a questão pede que o numero do pedido seja gerado automaticamente, dai pensei em atribuir o numero de acesso a classe ao numero de pedidos, mas como foi dito aqui, essa variavel pertence a classe e não ao objeto