Cómo Ordenar Array de Objetos en Java

Hola estimado lector, en esta ocasión voy a mostrar cómo podemos ordenar un array de objetos en Java, a través de un determinado atributo. Todo esto se hace com la implementación de Comparable<clase>, dentro de la clase de Java, la cual vamos a crear los objetos.

Lo primero que debemos de tener claro es que debemos tener implementados los métodos y funciones getters y setters, sino no va a funcionar. Una vez tengamos implementados lo anterior nos deberá quedar un código de programación muy parecido al siguiente:

public class Persona implements Comparable<Persona> {

    String nombre;
    String apellido;
    int anyos;

    Persona(String nombre, String apellido, int dni) {
        this.nombre = nombre;
        this.apellido = apellido;
        this.anyos = dni;
    }

    @Override
    public int compareTo(Persona arg0) {
        int dni = this.getAnyos();
        if (dni == arg0.anyos) {
            return 0;//lo pone al mismo nivel
        } else if (dni > arg0.anyos) {
            return 1;//lo pone delante
        } else {
            return -1;//lo pone hacia atrás
        }

    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public int getAnyos() {
        return anyos;
    }

    public void setAnyos(int anyos) {
        this.anyos = anyos;
    }

}
black background with text overlay screengrab
Photo by Pixabay on Pexels.com

Una vez hecho este código, vamos a crear varios objetos y creamos varias personas, a la vez que lo ordenamos con Arrays.sort(arrayAOrdenar).El código deberá verse de la siguiente forma:

Persona[] personas = new Persona[3];
        personas[0] = new Persona("nombre", "apellidos",
                34);
        personas[1] = new Persona("nombre1", "apellidos1", 15);
        personas[2] = new Persona("nombre2", "apellidos2", 27);
        Arrays.sort(personas);
        for(int i=0;i<personas.length;i++){
            System.out.println(personas[i].getAnyos()+"");
        }

Pues nada hasta aquí mi código de hoy espero que os haya gustado, que hayan aprendido algo, sin más me despido. Un saludo y hasta la próxima, chao.

Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.

Tomas Gonzalez
Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
A %d blogueros les gusta esto: