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???
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.
betoecomp
Olá,
As sugestões acimas são boas.
Outra sugestão eh usar um objeto Vector:
classPedido{// implementação da classe pedido......}classMain{Vectorpedidos<Pedidos>=newVector();pedidos.add(pedido);}
kallunga
vc pode usar um MAP e o key ser o nº do pedido.
Dado u num_pedido o MAP retorna um Object.
flws
davidpaniz
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.
Adriana_Muniz
while(opcao!=3){if(opcao==1){PedidoPizzap=newPedidoPizza();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(inti=0;i<listaPedidos.size();i++){if(?????){}}}
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ó…
vlw
betoecomp
[b]Outra coisa,
naum aconselho o uso de varivel estatica aí!!
usa uma private e um getter e setter…
[/b]
kallunga
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
Adriana_Muniz
Falha minha…
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