Objetos em um Vetor

11 respostas
Adriana_Muniz

Olá Pessoas,

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???

11 Respostas

fabim
List listaPedidos = new ArrayList();
listaPedidos.add( seuObjetoPedido );
T

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.

betoecomp

Olá,

As sugestões acimas são boas.
Outra sugestão eh usar um objeto Vector:

class Pedido {
 // implementação da classe pedido......
}

class Main {

	Vector pedidos<Pedidos> = new Vector();
	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)
			{
				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(?????)
					{
						
					}
				}	
			}

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

Esses são os atributos da classe Pedido
private static int numPedido = 0;
	private String saborPizza;
	private String tamanho;
	private String borda;
	private String massa;

Ajudem-me, por favor!!!!!

betoecomp

[color=darkblue][b]
Soh uma dica rapida adriana,

eu sugiro o uso de switch aí em vez desses ifs…

o código ficaria mais inteligivel…

[/b][/color]

kallunga

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

Criado 16 de abril de 2008
Ultima resposta 17 de abr. de 2008
Respostas 11
Participantes 6