Pesquisando Dados num Arraylist [Resolvido]

6 respostas
DeGuedes

E ai galera…

Tenho um autocomplete de ano, que conforme foi digitado ele deve aparecer sómente os parecidos…

Se fosse numa consulta ao banco eu usaria "%" + ano + "%"

Porém eu tenho esses dados numa lista, pois eu crio eles na mão,sem uso de banco de dados (pois soh retorno os ultimos 15 anos)…

Alguem sabe como eu faço para fazer uma pesquisa numa lista e ela me retornar os parecidos?

6 Respostas

mateuscs

Foreach

Voce pode comparar os objetos diretamente

for(T elemento: elementos){  
   //faça o que quiser com elemento  
}

De uma olhada nesse post

DeGuedes

Blza, mas se eu quiser comparar somente o inicio deles???

Tipo na minha lista tenho

2009/01
2009/02
2010/01
2010/02
2011/01
2011/02

E quando o usuario digitar 2011

quero que me retorne :

2011/01
2011/02
lucasportela

private void pesquisaArray() { ArrayList lista = new ArrayList(); lista.add(1); lista.add(2); lista.add(3); lista.add(4); lista.add(5); //Retorna a posição do elemento, começa com 0 System.out.println(Arrays.binarySearch(lista.toArray(), 4)); }

lucasportela
private void pesquisaArray() {
    	ArrayList<String> lista = new ArrayList<String>();
    	lista.add("2010/01");
    	lista.add("2010/02");
    	lista.add("1970/01");
    	lista.add("1970/01");
    	lista.add("2000/12");
    	
    	for (String elemento : lista) {
			if(elemento.contains("2010")){
				System.out.println(elemento);
			}
		}
}
DeGuedes

lucasportela:
private void pesquisaArray() { ArrayList lista = new ArrayList(); lista.add(1); lista.add(2); lista.add(3); lista.add(4); lista.add(5); //Retorna a posição do elemento, começa com 0 System.out.println(Arrays.binarySearch(lista.toArray(), 4)); }

Cara ele me Retorna o Objeto só se ele for IGUAL, e eu preciso q ele me retorne os parecidos… Estilo LIKE usado em pesquisas SQL…

DeGuedes
lucasportela:
private void pesquisaArray() {
    	ArrayList<String> lista = new ArrayList<String>();
    	lista.add("2010/01");
    	lista.add("2010/02");
    	lista.add("1970/01");
    	lista.add("1970/01");
    	lista.add("2000/12");
    	
    	for (String elemento : lista) {
			if(elemento.contains("2010")){
				System.out.println(elemento);
			}
		}
}

BOA LucasPortela..... Muito Obrigado Cara

Funcionou Direitinho...

[]'s

Criado 11 de agosto de 2011
Ultima resposta 11 de ago. de 2011
Respostas 6
Participantes 3