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

Titulo.java

package com.alura.screenmatch.modelos;

public class Titulo implements Comparable {
private String nombre;
private int fechaDeLanzamiento;

// Constructor
public Titulo(String nombre, int fechaDeLanzamiento) {
    this.nombre = nombre;
    this.fechaDeLanzamiento = fechaDeLanzamiento;
}

// Getters
public String getNombre() {
    return nombre;
}

public int getFechaDeLanzamiento() {
    return fechaDeLanzamiento;
}

// Implementación de compareTo
@Override
public int compareTo(Titulo otroTitulo) {
    return this.getNombre().compareTo(otroTitulo.getNombre());
}

// Método toString
@Override
public String toString() {
    return this.getNombre() + " (" + this.getFechaDeLanzamiento() + ")";
}

}

Serie.java

package com.alura.screenmatch.modelos;

public class Serie extends Titulo {
private int temporadas;

public Serie(String nombre, int fechaDeLanzamiento, int temporadas) {
    super(nombre, fechaDeLanzamiento);
    this.temporadas = temporadas;
}

public int getTemporadas() {
    return temporadas;
}

@Override
public String toString() {
    return "Serie: " + this.getNombre() + " (" + this.getFechaDeLanzamiento() + ")";
}

}

Pelicula.java

package com.alura.screenmatch.modelos;

public class Pelicula extends Titulo {
private String director;

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

public String getDirector() {
    return director;
}

@Override
public String toString() {
    return "Película: " + this.getNombre() + " (" + this.getFechaDeLanzamiento() + ")";
}

}

PrincipalConListas.java

package com.alura.screenmatch.principal;

import com.alura.screenmatch.modelos.*;
import java.util.ArrayList;
import java.util.Collections;

public class PrincipalConListas {
public static void main(String[] args) {

    Pelicula favorito = new Pelicula("El señor de los anillos", 2001, "Peter Jackson");
    Pelicula otro = new Pelicula("Matrix", 1999, "Lana Wachowski");
    Serie serie = new Serie("Breaking Bad", 2008, 5);

    ArrayList<Titulo> lista = new ArrayList<>();
    lista.add(favorito);
    lista.add(otro);
    lista.add(serie);

    // Ordenar los títulos usando Comparable
    Collections.sort(lista);

    // Mostrar lista ordenada
    System.out.println(lista);
}

}

1 respuesta

Hola Alexis, espero que estés bien

Parece que ya has implementado correctamente la interfaz Comparable en tu clase Titulo y has sobrescrito el método compareTo para ordenar los títulos por nombre. Además, en tu clase PrincipalConListas, estás utilizando el método Collections.sort para ordenar la lista de títulos, lo cual está perfecto.

Tu implementación está alineada con lo que se hizo en la clase. Aquí tienes un pequeño resumen de lo que has hecho:

  1. Implementación de Comparable: En la clase Titulo, implementaste la interfaz Comparable<Titulo> y sobrescribiste el método compareTo para comparar los títulos por nombre. Esto permite que los objetos de Titulo puedan ser ordenados.

  2. Uso de Collections.sort: En la clase PrincipalConListas, creaste una lista de objetos Titulo y la ordenaste con Collections.sort(lista), lo cual utiliza el método compareTo que definiste.

  3. Sobrescritura del método toString: En la clase Serie, sobrescribiste el método toString para personalizar la representación en cadena de las series.

Todo parece estar en orden. Si estás viendo los resultados esperados al imprimir la lista ordenada, ¡significa que has completado la tarea con éxito!

Espero haber ayudado y buenos estudios!