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

Haz como yo hice

  1. Clase Titulo implementando Comparable

Se implementa la interfaz Comparable para poder ordenar los títulos por nombre.

package com.alura.screenmatch.modelos;

public class Titulo implements Comparable {

private String nombre;
private int fechaDeLanzamiento;

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

public String getNombre() {
    return nombre;
}

public int getFechaDeLanzamiento() {
    return fechaDeLanzamiento;
}

@Override
public int compareTo(Titulo otroTitulo) {
    return this.getNombre().compareTo(otroTitulo.getNombre());
}

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

}
2. Clase Serie sobrescribiendo toString()
package com.alura.screenmatch.modelos;

public class Serie extends Titulo {

public Serie(String nombre, int fechaDeLanzamiento) {
    super(nombre, fechaDeLanzamiento);
}

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

}
3. Clase Pelicula
package com.alura.screenmatch.modelos;

public class Pelicula extends Titulo {

public Pelicula(String nombre, int fechaDeLanzamiento) {
    super(nombre, fechaDeLanzamiento);
}

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

}
4. Clase PrincipalConListas

Aquí se crea la lista y se ordena con Collections.sort().

import java.util.ArrayList;
import java.util.Collections;
import com.alura.screenmatch.modelos.Pelicula;
import com.alura.screenmatch.modelos.Serie;
import com.alura.screenmatch.modelos.Titulo;

public class PrincipalConListas {

public static void main(String[] args) {

    Pelicula favorito = new Pelicula("El señor de los anillos", 2001);
    Pelicula otro = new Pelicula("John Wick", 2014);
    Serie serie = new Serie("La Casa de Papel", 2017);

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

    Collections.sort(lista);

    System.out.println(lista);
}

}

1 respuesta

Hola David, espero que estés bien

¡Espero que estés bien! Parece que has seguido correctamente los pasos para implementar la interfaz Comparable en la clase Titulo y has sobrescrito el método toString en la clase Serie. También veo que has creado una lista de títulos en la clase PrincipalConListas y la has ordenado usando Collections.sort(). Todo parece estar en orden.

Aquí hay un pequeño resumen de lo que hiciste, por si acaso:

  1. Clase Titulo: Implementaste la interfaz Comparable y el método compareTo para ordenar los títulos por nombre.

  2. Clase Serie y Pelicula: Sobrescribiste el método toString para que las instancias de estas clases se impriman con un formato específico.

  3. Clase PrincipalConListas: Creaste una lista de objetos Titulo, añadiste instancias de Pelicula y Serie, y luego ordenaste la lista con Collections.sort().

Si al ejecutar el programa obtienes la lista ordenada correctamente por el nombre de los títulos, entonces has completado la actividad con éxito.

Espero que esto te haya ayudado y que sigas disfrutando de tus estudios en Java. ¡Bons estudios!