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.

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
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.