¿Pregunta tonta?
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
¿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
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
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
