Busca em Array List de objetos

5 respostas
A

Pessoal já leio e acompanho o fórum a algum tempo e agora vou recorrer a ajuda de todos.

Tenho um arraylista de objetos que carrego automaticamente quando abro minha aplicação.
Meu usuário informa um numeroChamado que é uma Sting do objeto que a minha lista carrega, mas ao invés da busca ser efetuado pelo numeroChamado esta sendo feita pela posição do objeto no array.

public void carrega() {
	
		    	int numero = Integer.parseInt(jTextFieldNumeroDoChamado.getText());

		    	jTextAreaAcompanhamentoDoChamado.setText(this.listaDeOcorrencia.get(numero).getAcompanhamento());
		    	jTextAreaSolucaoDoChamado.setText(this.listaDeOcorrencia.get(numero).getResolucao());

5 Respostas

yoshikichi
anholon:
Pessoal já leio e acompanho o fórum a algum tempo e agora vou recorrer a ajuda de todos.

Tenho um arraylista de objetos que carrego automaticamente quando abro minha aplicação.
Meu usuário informa um numeroChamado que é uma Sting do objeto que a minha lista carrega, mas ao invés da busca ser efetuado pelo numeroChamado esta sendo feita pela posição do objeto no array.

public void carrega() {
	
		    	int numero = Integer.parseInt(jTextFieldNumeroDoChamado.getText());

		    	jTextAreaAcompanhamentoDoChamado.setText(this.listaDeOcorrencia.get(numero).getAcompanhamento());
		    	jTextAreaSolucaoDoChamado.setText(this.listaDeOcorrencia.get(numero).getResolucao());
Qndo vc utiliza ArrayList e faz um get, vc esta pegando pelo seu indice. No seu caso seria melhor utilizar um Map: Map mapa= new HashMap(); assim vc add pelo sua string: mapa.put("sua string", seuObjeto); e recuperava pelasua chave. falow
augustocolom
anholon:
Pessoal já leio e acompanho o fórum a algum tempo e agora vou recorrer a ajuda de todos.

Tenho um arraylista de objetos que carrego automaticamente quando abro minha aplicação.
Meu usuário informa um numeroChamado que é uma Sting do objeto que a minha lista carrega, mas ao invés da busca ser efetuado pelo numeroChamado esta sendo feita pela posição do objeto no array.

public void carrega() {
	
		    	int numero = Integer.parseInt(jTextFieldNumeroDoChamado.getText());

		    	jTextAreaAcompanhamentoDoChamado.setText(this.listaDeOcorrencia.get(numero).getAcompanhamento());
		    	jTextAreaSolucaoDoChamado.setText(this.listaDeOcorrencia.get(numero).getResolucao());

Amigo,
Aconselho tu a sobrescrever o método equals() na sua classe (objeto).
Lá tu determina qual será a forma de pesquisa.

A

Vou tentar das 2 formas.

Tenho algumas duvidas ainda mas vou tentar caso trave novamente ou mesmo quando eu terminar volto e mostro o resultado final

A
<blockquote>

Qndo vc utiliza ArrayList e faz um get, vc esta pegando pelo seu indice.

No seu caso seria melhor utilizar um Map:

Map<String,Object> mapa= new HashMap<String,Map>();

assim vc add pelo sua string:

mapa.put(“sua string”, seuObjeto);

e recuperava pelasua chave.

falow</blockquote>

Pessoal desculpe o numero de perguntas sobre uma questão simples como essa, mas sou novo e acabei com mais duvidas

Utilizei como base o código que foi passado pelo Yoshikichi e acabei com este código que não buscando da maneira correta acredito que é pelo fado de eu não ter conseguido relacionar o meu código com o do Yoshikichi.

int numero = Integer.parseInt(jTextFieldNumeroDoChamado.getText());
		    	
		    	HashMap<String, Map> mapa= new HashMap<String,Map>(); 
		    	mapa.put(jTextFieldNumeroDoChamado.getText(), mapa); 
		    	
		    	jTextAreaAcompanhamentoDoChamado.setText(this.listaDeOcorrencia.get(numero).getAcompanhamento());
		    	jTextAreaSolucaoDoChamado.setText(this.listaDeOcorrencia.get(numero).getResolucao());   

	}
yoshikichi
anholon:
Qndo vc utiliza ArrayList e faz um get, vc esta pegando pelo seu indice. No seu caso seria melhor utilizar um Map: Map mapa= new HashMap(); assim vc add pelo sua string: mapa.put("sua string", seuObjeto); e recuperava pelasua chave. falow

Pessoal desculpe o numero de perguntas sobre uma questão simples como essa, mas sou novo e acabei com mais duvidas

Utilizei como base o código que foi passado pelo Yoshikichi e acabei com este código que não buscando da maneira correta acredito que é pelo fado de eu não ter conseguido relacionar o meu código com o do Yoshikichi.

int numero = Integer.parseInt(jTextFieldNumeroDoChamado.getText());
		    	
		    	HashMap<String, Map> mapa= new HashMap<String,Map>(); 
		    	mapa.put(jTextFieldNumeroDoChamado.getText(), mapa); 
		    	
		    	jTextAreaAcompanhamentoDoChamado.setText(this.listaDeOcorrencia.get(numero).getAcompanhamento());
		    	jTextAreaSolucaoDoChamado.setText(this.listaDeOcorrencia.get(numero).getResolucao());   

	}
Qndo vc trabalha com Map e vc for recuperar com o get, vc tem q infromar a chave, O map add os objetos com par valor: chave:valor;
ParValor p = new ParValor();
		p.setNome("gabriel");
		Map<String, ParValor> map = new HashMap<String, ParValor>();
		map.put("tricolor", p);
		p=new ParValor();
		p.setNome("Mariana");
		map.put("palmerense", p);
		ParValor re=map.get("palmerense");
Conselho vc dar uma garimpada no google sobre map. falow abraços
Criado 3 de julho de 2010
Ultima resposta 3 de jul. de 2010
Respostas 5
Participantes 3