Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Haciendo lo vosto en clases

public class Titulo implements Comparable {
private String nombre;
private int fechaLanzamiento;
private int duracion;
private boolean incluidoEnElPlan;
private double sumaEvaluaciones;
private int totalEvaluaciones;

public Titulo(String nombre, int fechaLanzamiento, int duracion, boolean incluidoEnElPlan, double sumaEvaluaciones, int totalEvaluaciones) {
    this.nombre = nombre;
    this.fechaLanzamiento = fechaLanzamiento;
    this.duracion = duracion;
    this.incluidoEnElPlan = incluidoEnElPlan;
    this.sumaEvaluaciones = sumaEvaluaciones;
    this.totalEvaluaciones = totalEvaluaciones;
}

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

public String getNombre() {
    return nombre;
}

public void setNombre(String nombre) {
    this.nombre = nombre;
}

public void setFechaLanzamiento(int fechaLanzamiento) {
    this.fechaLanzamiento = fechaLanzamiento;
}

public int getDuracion() {
    return duracion;
}

public void setDuracion(int duracion) {
    this.duracion = duracion;
}

public boolean isIncluidoEnElPlan() {
    return incluidoEnElPlan;
}

public void setIncluidoEnElPlan(boolean incluidoEnElPlan) {
    this.incluidoEnElPlan = incluidoEnElPlan;
}

double getSumaEvaluaciones(){

    return sumaEvaluaciones;
}

public int getFechaLanzamiento() {
    return fechaLanzamiento;
}

public void muestraFichaTecnica() {
    System.out.println(" El Tutulo es: " + getNombre());
    System.out.println(" La Fecha de Lanzamiento: " + getFechaLanzamiento());
    System.out.println(" Duracion en minutos es: " + getDuracion());
    System.out.println(" Incliudo en el plan: " +incluidoEnElPlan);
    System.out.println(" La evalución del Título es: " +calcularMedia());
}

public void evaluar(double nota){
    sumaEvaluaciones += nota;
    totalEvaluaciones++;

}

public double calcularMedia(){

    return sumaEvaluaciones/totalEvaluaciones;
}

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

}

2 respuestas

ArrayList listaDeArtistas = new ArrayList<>();
listaDeArtistas.add("Ben Afleck");
listaDeArtistas.add("Leonardo DiCaprio");
listaDeArtistas.add("Salma Hayek");
listaDeArtistas.add("Edgar Ramirez");
System.out.println("Lista de artistas no ordenada" + listaDeArtistas);

    Collections.sort(listaDeArtistas);
    System.out.println("Lista de artistas ordenada" + listaDeArtistas);

    Collections.sort(listas);
    System.out.println("Lista de Titulos Ordanados" + listas);

    listas.sort(Comparator.comparing(Titulo::getFechaLanzamiento));
    System.out.println("ListaOrdenada por Fechas:  " +listas);

}

Hola Liliana,

Parece que ya has implementado la interfaz Comparable en tu clase Titulo y has definido el método compareTo para ordenar los títulos por nombre. ¡Bien hecho! Ahora, para completar el ejercicio, asegúrate de que en tu clase principal (probablemente llamada algo como PrincipalConListas), estás utilizando el método Collections.sort para ordenar una lista de objetos Titulo.

Aquí tienes un ejemplo de cómo podrías hacerlo:

import java.util.ArrayList;
import java.util.Collections;

public class PrincipalConListas {
    public static void main(String[] args) {
        ArrayList<Titulo> lista = new ArrayList<>();

        Titulo favorito = new Titulo("Favorito", 2022);
        Titulo otro = new Titulo("Otro", 2021);
        Titulo serie = new Titulo("Serie", 2020);

        lista.add(favorito);
        lista.add(otro);
        lista.add(serie);

        Collections.sort(lista);

        for (Titulo titulo : lista) {
            titulo.muestraFichaTecnica();
        }
    }
}

Asegúrate también de que, si tienes una clase Serie que extiende Titulo, hayas sobrescrito el método toString para que se imprima correctamente cuando se muestre la lista ordenada. Aquí tienes un ejemplo de cómo podría ser:

public class Serie extends Titulo {
    @Override
    public String toString() {
        return "Serie: " + this.getNombre() + " (" + this.getFechaLanzamiento() + ")";
    }
}

Con estos cambios, deberías poder ordenar y mostrar tus títulos correctamente. Espero que esto te ayude a avanzar con tu práctica.

Espero haber ayudado y ¡buenos estudios!