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