Para colocar los elementos de una lista en orden dentro de un ArrayList se puede utilizar la clase Collections. El siguiente código muestra el resultado de utilizar el método sort() de la clase Collections en un ArrayList:
En la primera parte se puede observar que con objetos del tipo String al utilizar el método sort con un List nos permite ordenar alfabéticamente los elementos sin mucho problema.
Luego se observa la forma de ordenar por medio de atributos de un objeto. Primero se muestra ordenando el objeto Hijo por medio de fechas (que pueden ser de nacimiento, registro, etc.) y luego se ordena la lista por medio de la edad.
Aquí se puede observar la clase Hijo:
De esta forma se facilita mucho ordenar objetos por medio de uno de sus atributos.
Suscribirse a:
Enviar comentarios
(
Atom
)
Este comentario ha sido eliminado por el autor.
ResponderEliminary si es float, como se realizaria?
ResponderEliminarrubencarabias.primerob@gmail.com
gracias y un saludo!
Si utilizas un Float como objeto no debes realizar ningun cambio, pero si necesitas utilizar un float primitivo el comparador deber ir como se muestra a continuación:
EliminarCollections.sort(listaFloats, new Comparator(){
@Override
public int compare(float o1, float o2) {
if(o1 == o2){
return 0;
}
else if(o1 >= o2){
return 1;
}
else{
return -1;
}
}
});
ahora bien si se necesita ordenar la lista hijo por nombre como seria??
ResponderEliminarHola. En este caso dentro del método compare(Hijo o1, Hijo o2) se debería realizar la siguiente comparación o1.getNombre().compareTo(o2.getNombre());
EliminarHola, y si quiero ordenar por un campo BigDecimal,como sería?
ResponderEliminarcomo filtrarias el arreglo implementadonto un texedit tomando como ejmplo:
ResponderEliminarList hijos = new ArrayList();
hijos.add(new Hijo("Paco", "Perez", 20, new Date(11000)));
hijos.add(new Hijo("Pepe", "Argeta", 23, new Date(9000)));
hijos.add(new Hijo("Zulma", "Estrada", 18, new Date(10000)));
y en el texedit digito apellidos como "perez"
En ese caso no quieres ordenar pero obtener la lista filtrada. Puedes recorrer el array y luego obtener los valoresq ue te interesan. Por ejemplo:
EliminarList result = new ArrayList<>();
for (Hijo hijo : hijos) {
if (valorDelTextEdit.contains(hijo.getApellido())) {
result.add(hijo);
}
}
Result tendria los deseado.