Busca dentro de um ArrayList

E ai galera, blz? Como foi o fim de semana? :wink:

Seguinte, bateu uma dúvida aki e não sei se é possivel fazer o que eu quero!
Gostaria de fazer uma busca de um determinado objeto, dentro de um ArrayList, vou tentar exemplificar o que eu quero fazer.

Qualquer dica é bem vinda… :wink:

[code]import java.util.*;

public class ListSearch {
// ********************************** //
// o que eu quero fazer é isso!!! //
// sem precisar usar for ou if //
// ********************************** //
public String search(int id) {
// Sei que a linha abaixo não existe, mas o que
// eu quero fazer é alguma coisa proximo a isso…
Cliente c = l.find((Cliente).getIdCliente, id);
return c.getNome();
}
// **********************************

// Populando o ArrayList;
private void load() {				
	l.add(new Cliente(1, "Maria"));
	l.add(new Cliente(2, "Joana"));
	l.add(new Cliente(3, "Samanta"));
	l.add(new Cliente(4, "Carolina"));
	l.add(new Cliente(5, "Vanessa"));
	l.add(new Cliente(6, "Jaqueline"));
}

public ListSearch() {
	l = new ArrayList();
	load();
}

private List l;

// Classe para armazenar os dados do cliente...
private class Cliente {
	public void setIdCliente(int idCliente) {
		this.idCliente = idCliente;
	}
	public int getIdCliente() {
		return idCliente;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getNome() {
		return nome;
	}
	
	public Cliente(int idCliente, String nome) {
		this.idCliente = idCliente;
		this.nome = nome;
	}
	private int idCliente;
	private String nome;
};

};[/code]

Ola Black_fire

eu não cheguei a testar esses métodos abaixo, mas pelo que eu vi no javadoc do ArrayList, eles podem resolver seu problema, faz um teste ae.

contains(Object elem)
          Returns true if this list contains the specified element.

e também

indexOf(Object elem)
          Searches for the first occurence of the given argument, testing for equality using the equals method.

esse eu acho que resolve, pois ele retorn um int, ou seja, retorna a posição dentro do ArrayList.

Para ver a lista completa acesse o link abaixo:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html[/code]

Eu sei que vão me matar por isso, mas da uma olhada no commons collections que tem métodos que fazem isso.

ola!
tu pode usar um mapa ao inves de uma lista… não? hashmap e etc…
dai, a chave para o mapa eh o id do cliente e o valor eh o nome. Deste jeito fica facil achar o nome do cliente.
Ou entao tu tem q ir testando cada elemento do ArrayList pra ver se ele tem o tal id.
Neste caso o codigo ficaria mais ou menos assim:

public String search(int id) {
  String retorno = "";

  Iterator i = l.iterator();

  while(i.hasNext()){
     Cliente c = (Cliente) i.next();
     if(c.getId() == id){
       retorno = c.getNome();
       break;
     }
  }

  return retorno;
}

teh mais!