¿Pregunta tonta?

Leticia
05 de Septiembre del 2003
Hola, puede que mi pregunta sea tonta... pero, bueno, para esto tb está el foro.

¿Hay algún método que me ordene los elementos de un vector? El vector que yo tengo no es de numeros, es de elementos que tienen nombre, edad, dirección... y quiero ordenarlos respecto a la edad.
Gracias

Luismahou
05 de Septiembre del 2003
Hay un método estático en la clase Collections
Collections.sort(List lista, Comparator comp);

List es una interfaz que implementan las clases Vector y ArrayList entre otras (mira el API para más información)

El objeto Comparator define la lógica (o regla) por la cual se deben ordenar los elementos de la lista (en tu caso por la Edad).
Sería algo así:

Comparator comp = new Comparator() {
public int compare(Object o1, Object o2) {
DatosCliente d1 = (DatosCliente) o1;
DatosCliente d2 = (DatosCliente) o2;
return d1.getEdad() - d2.getEdad();
}
};

La clase DatosCliente representa los objetos que hay dentro de tu Lista con los datos que decías (nombre, edad, etc).

El método compare devuelve un entero :
- Si < 0, entonces d1.edad es menor que d2.edad
- Si = 0, entonces d1.edad = d2.edad
- Si > 0, entonces d1.edad > d2.edad

Partiendo de estos valores el método Collections.sort sabe cual de los dos objetos tiene que poner primero.

Saludos, Luismahou


Leticia
05 de Septiembre del 2003
Gracias