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] -------------------------------------------------------------------------