Oi,

    Acho que as classes/interfaces SortedList / Comparable / Collection
podem te ajudar nesse caso... Só dar uma olhada na documentação da JDK.

.: marcelo :.



| Italo:
|
| Está meio ineficiente... (utilizei comparações de String e BubbleSort para
| ordenação)...
| Também não sei se seria a melhor maneira de implementar isso...
| Mas acho que dá para você ter uma idéia:
|
| Passe para o método static ordenaRegistro o array de Registros e uma
String
| dizendo qual parâmetro ordenar...
|
| Segue:
|
| ************************************************************
|
| public class Registro {
|  int     cod;
|  String  name;
|  int     telefone;
|
|  public Registro(int cod, String name, int telefone) {
|   this.cod = cod;
|   this.name = name;
|   this.telefone = telefone;
|  }
|
|  public static void ordenaRegistro(Registro[] r, String param) {
|   for (int i = 0; i < r.length; i++) {
|    for (int j = 0; j < r.length - 1; j++) {
|     try {
|      String  s  = (String) r[j].getParam(param);
|      if (s.compareTo(r[j + 1].getParam(param)) > 0) {
|       Registro  hold  = r[j];
|       r[j] = r[j + 1];
|       r[j + 1] = hold;
|      }
|
|     }
|     catch (java.lang.ClassCastException e) {
|      Integer  k  = (Integer) r[j].getParam(param);
|      if (k.compareTo(r[j + 1].getParam(param)) > 0) {
|       Registro  hold  = r[j];
|       r[j] = r[j + 1];
|       r[j + 1] = hold;
|      }
|
|     }
|    }
|   }
|  }
|
|  public Object getParam(String param) {
|
|   if (param.equals("cod")) {
|    return new Integer(cod);
|   }
|   else if (param.equals("name")) {
|    return name;
|   }
|   else {
|    return new Integer(telefone);
|   }
|  }
|
|  public String toString() {
|   return cod + " - " + name + " - " + telefone;
|  }
|
|  public static void main(String[] v) {
|   Registro  r1  = new Registro(1, "marcio", 5555555);
|   Registro  r2  = new Registro(2, "marcelo", 1111111);
|   Registro  r3  = new Registro(6, "andre", 3333333);
|   Registro  rn[]  = {r1, r2, r3};
|   int       i   = 0;
|
|   int       n   = rn.length;
|   System.out.println("Ordenado por \"cod\"");
|   Registro.ordenaRegistro(rn, "cod");
|   for (i = 0; i < n; i++) {
|    System.out.println(rn[i]);
|   }
|   System.out.println("\nOrdenado por \"name\"");
|   Registro.ordenaRegistro(rn, "name");
|   for (i = 0; i < n; i++) {
|    System.out.println(rn[i]);
|   }
|   System.out.println("\nOrdenado por \"telefone\"");
|   Registro.ordenaRegistro(rn, "telefone");
|   for (i = 0; i < n; i++) {
|    System.out.println(rn[i]);
|   }
|  }
|
| }
|
| ----- Original Message -----
| From: <[EMAIL PROTECTED]>
| To: <[EMAIL PROTECTED]>
| Sent: Friday, March 01, 2002 9:25 AM
| Subject: [java-list] sort dinamico
|
|
| > pessoal
| >
| > eu gostaria  de buscar no banco uma certa quantidade de registros, que
| contenha 3 campos.
| >
| > e queria armazenar em um codiga java de forma que quando for utilizar
| estes registros possa escolher a ordem de busca: por exemplo:
| >
| >
| > campos : cod  name          telefone
| >    ---  ------------  --------
| >                 1    marcio       5555555
| >                 2    marcelo      1111111
| >                 6    andre     3333333
| >
| > em determinada situacao quero que  estes registros venham ordenados por
| cod. Em outra situacao quero que os registros venham ordenados por nome. E
| em outra situacao quero registros ordenados venham por telefone.
| >
| >
| > ------------------------------ LISTA
SOUJAVA ----------------------------
| > http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
| > dúvidas mais comuns: http://www.soujava.org.br/faq.htm
| > regras da lista: http://www.soujava.org.br/regras.htm
| > historico: http://www.mail-archive.com/java-list%40soujava.org.br
| > para sair da lista: envie email para
[EMAIL PROTECTED]
|
> -------------------------------------------------------------------------
| >
|
|
| ------------------------------ LISTA SOUJAVA ----------------------------
| http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
| dúvidas mais comuns: http://www.soujava.org.br/faq.htm
| regras da lista: http://www.soujava.org.br/regras.htm
| historico: http://www.mail-archive.com/java-list%40soujava.org.br
| para sair da lista: envie email para [EMAIL PROTECTED]
| -------------------------------------------------------------------------
|


------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a