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.

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad