Ajuda com array de objetos

4 respostas
X

Olá pessoal …

Estou com uma duvida e não esotu conseguindo resolver mesmo

Suponhamos que eu tenha uma classe Carro com um metodo setVelocidade(int iVelocidade) e um outro metodo getVelocidade()

eu gostaria de guarda o objeto instanciado em um array …

fiz umas pesquisas e encontrei este objeto

“List” tentei fazer o seguinte:

List oList = new ArrayList(); // Instancia a lista
oList.add(oList.size(), new Carro()); // Adiciona o objeto Carro a ela

o que me faria adicionar um objeto carro a lista …

bom e qual o problema … o problema é na hora do get da lista … no site da sun diz que ele adiciona um Object e retorna um Object tb

então seria pelo indice que iriamos pegar o item

oList.get(0); //  pegando o item na posição zero da lista

isto devemeria me retorno o objeto que adicionamos nele correto ???

ele me retorna o carro… e eu consiguo achar os metodos dele … setVelocidade() e getVelocidade() …

porem eu gostaria de executar o método … eu achei que poderia ser assim

(oList.get(0)).getVelocidade(); // Com o retorno do objeto eu poderia usar o metodo que pertence a ele

pois ele me retorna o objeto Carro então eu tenho o método …

existe alguema maneira de conseguir isso ??

existe algum tipo de array que eu possa guardar objetos e seus metodos ?

bom … obrigado

4 Respostas

C
Olá, sobre a sua pergunta, eu entendi a parte de como criar uma Lista de objetos do tipo Carro, depois tu precisa pegar os objetos que tu colocou, certo ? Baseado na minha forma de entender sua pergunta temos algumas coisas... Usar a Interface List( como tu ta usando ), vc consegue pegar elas pelo seu indice, ou seja, conforme tu vai adicionando seus objetos, ou seja...
List<Carro> carros = new ArrayList<Carro>();
Carro c1 = new Carro();
c1.setVelocidade(40);

carros.add(c1);
// e assim por diante
quanto tu precisar buscar seu carro, então usando o get(posição) vais conseguir buscar pela posição que tu add, usando o get(0), ele retornaria o c1, como...
Carro c = carros.get(0);
System.out.println(c.getVelocidade());
// Imprime 40
Agora se tu precisa de um código para cada carro, podendo ser a placa de le ou coisa assim, então tu precisa usar a Interface Map. Mas ai já é outra história. :joia:
D

Vc poderia usar um Map…que possibilitasse recuperar o carro de acordo com uma chave passada…
essa chave poderia ser a placa do carro…

Map<String,Carro> listacarros = new LinkedHashMap<String,Carro>();

//adicionando
listacarros.put(carro.getPlaca(),carro);

//recuperando
Carro temp = listacarros.get(carro.getPlaca());

t+

X

obriigado pessoal …

o codigo que eu estava a procurava que daria certo era o seguinte:

((carro)oList.get(0)).getVelocidade();

mas eu não tinha o conhecido de declarar a lista como uma lista de carro como vcs flaram …

e achei em melhor realmente do jeito que explicaram, porém n entendi sobre o Map, se tiverem alguma coisa para ajudar a entender sobre isso me passem …

vou mudar aqui na classe para declara a lista como vcs flaram …

vlw xD

C

Da uma olhada na API

Criado 21 de fevereiro de 2007
Ultima resposta 22 de fev. de 2007
Respostas 4
Participantes 3