Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Haga lo que hicimos en aula: ordenando con Comparable

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

Hola, Justin.

Parece que estás trabajando con listas y colecciones en Java y quieres ordenar usando Comparable. En el código que compartiste, estás utilizando Comparator para ordenar por fecha de lanzamiento, lo cual es una buena práctica si no puedes modificar la clase original para implementar Comparable.

Sin embargo, si deseas ordenar una lista de objetos usando Comparable, debes asegurarte de que la clase de los objetos implemente la interfaz Comparable. Aquí tienes un ejemplo de cómo hacerlo:

Supongamos que tienes una clase Pelicula:

public class Pelicula implements Comparable<Pelicula> {
    private String nombre;
    private int fechaDeLanzamiento;

    public Pelicula(String nombre, int fechaDeLanzamiento) {
        this.nombre = nombre;
        this.fechaDeLanzamiento = fechaDeLanzamiento;
    }

    public String getNombre() {
        return nombre;
    }

    public int getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }

    @Override
    public int compareTo(Pelicula otraPelicula) {
        return Integer.compare(this.fechaDeLanzamiento, otraPelicula.getFechaDeLanzamiento());
    }

    @Override
    public String toString() {
        return "Pelicula{" + "nombre='" + nombre + '\'' + ", fechaDeLanzamiento=" + fechaDeLanzamiento + '}';
    }
}

En este ejemplo, Pelicula implementa Comparable<Pelicula> y sobreescribe el método compareTo para ordenar por fechaDeLanzamiento.

Luego, puedes ordenar una lista de Pelicula de esta manera:

List<Pelicula> listaDePeliculas = new ArrayList<>();
listaDePeliculas.add(new Pelicula("Avatar", 2023));
listaDePeliculas.add(new Pelicula("El señor de los anillos", 2001));
listaDePeliculas.add(new Pelicula("Encanto", 2021));

Collections.sort(listaDePeliculas);

System.out.println("Lista de películas ordenada por fecha: " + listaDePeliculas);

Esto ordenará las películas por su fecha de lanzamiento usando Comparable.

Espero que esto te ayude a implementar la funcionalidad que buscas.