Aki vai um teste funcionando:

import java.util.*;
public class FindObjects  {

  public static void main(String[] args) {
      List lista = new ArrayList();
      lista.add(new Client(1,"Luis","Petropolis"));
      lista.add(new Client(2,"Fred","Jacarepagua"));
      lista.add(new Client(3,"Bruno","Jacarepagua"));
      lista.add(new Client(4,"Ronaldo","Bangu"));
      lista.add(new Client(5,"Jorge","Niteroi"));


      Collections.sort(lista);

      int indice = Collections.binarySearch(lista,"Fred");
      Client cli = (Client) lista.get(indice);

      System.out.println(cli);

  }

  public static class Client implements Comparable{
    private int id=0;
    private String nome="";
    private String endereco="";
    public Client(int id, String nome, String endereco){
      this.id=id;this.nome=nome;this.endereco=endereco;
    }
    public void setId(int id) { this.id=id; }
    public int getId() { return this.id; }
    public void setNome(String nome) { this.nome=nome; }
    public String getNome() { return this.nome; }
    public void setEndereco(String endereco) { this.endereco=endereco; }
    public String getEndereco() { return this.endereco; }
    public String toString() {
        return "id: " + id + "\nNome: " + nome + "\nEndereco: " + endereco;
    }
    public int hashCode() {
      return nome.hashCode();
    }
    public int compareTo(Object ob2){
         int i1 = this.hashCode();
         int i2 = ob2.hashCode();
         int retorno=0;
         if (i1>i2) retorno=1;
         if (i1<i2) retorno=-1;
         return retorno;
     }

  }
}



O legal deste exemplo � o uso do hashCode para tornar o seu objeto �nico
com base no nome. Se n�o fosse usado isso, voce teria que passar um objeto
Client com o nome do cliente que voce deseja encontrar.

Voce tb pode criar um objeto comparator, caso nao queira implementar a
interface Comparable:

      Comparator c = new Comparator() {
        public int compare(Object ob1, Object ob2){
              int i1 = ob1.hashCode();
              int i2 = ob2.hashCode();
              int retorno=0;
              if (i1>i2) retorno=1;
              if (i1<i2) retorno=-1;
             return retorno;
        }
      };


      Collections.sort(lista, c);

      int indice = Collections.binarySearch(lista,"Fred", c);


[]s Bulinha




                                                                                
                                                       
                      "Rodrigo                                                  
                                                       
                      Nascimento"              Para:    
<[EMAIL PROTECTED]>                                               
                      <[EMAIL PROTECTED]         cc:      (cco: RSZ012 
Desenvolvimento/Rio/Vale)                                         
                      com>                     Assunto: RES: [JUG-Petro] Search 
em lists                                               
                                                                                
                                                       
                      12/09/2004 03:20                                          
                                                       
                      PM                                                        
                                                       
                      Responder a                                               
                                                       
                      jug-petropolis                                            
                                                       
                                                                                
                                                       




Marcelo,

Acho que h� algumas formas de fazer, mas uma das mais limpas, na minha
opini�o, � implementar um Comparator (java.util.Comparator), ordernar e
pesquisar utilizando Collections.sort() e Collections.binarySearch()
(java.util.Collections).

[]'s
Rodrigo Goulart


-----Mensagem original-----
De: Marcelo Beckmann [mailto:[EMAIL PROTECTED]
Enviada em: quinta-feira, 9 de dezembro de 2004 13:39
Para: [EMAIL PROTECTED]
Assunto: [JUG-Petro] Search em lists

Ol� a todos,

gostaria da opni�o dos colegas de como proceder
quando se tem um List ou Set, e se quer buscar um elemento
dessa lista que atenda a determinadas condi��es.

Por exemplo uma lista do seguinte objeto:

public class Client
{
   /..
   private int id;
   private String nome
   //...

   //... getters e setters
}

Gostaria de saber como voc�s buscariam um objeto Client dessa lista cujo
nome seja "JOSE MARIA", sem ter que criar um loop
no meio do c�digo da aplica��o. Para voc�s, qual seria a maneira mais
elegante de implementar isso?

Desde j� agrade�o a aten��o,


[]�s
Marcelo Beckmann

____________________________________________________________________________

_____
Quer mais velocidade?
S� com o acesso Aditivado iG, a velocidade que voc� quer na hora que voc�
precisa.
Clique aqui: http://www.acessoaditivado.ig.com.br





Yahoo! Groups Links





--
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.289 / Virus Database: 265.4.8 - Release Date: 8/12/2004


--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.289 / Virus Database: 265.4.8 - Release Date: 8/12/2004






Yahoo! Groups Links













------------------------ Yahoo! Groups Sponsor --------------------~--> 
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/5cFolB/TM
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/jug-petropolis/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Atrašyti