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 implementando Comparable

package com.aluracursos.screenmatch.modelos;

public class Titulo implements Comparable<Titulo> {

    private String nombre;
    private int fechaDeLanzamiento;
    private int duracionEnMinutos;
    private boolean incluidoEnElPlan;
    private double sumaDeEvaluaciones;
    private int totalDeEvaluaciones;

    public String getNombre() {
        return nombre;
    }

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

    public int getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }

    public void setFechaDeLanzamiento(int fechaDeLanzamiento) {
        this.fechaDeLanzamiento = fechaDeLanzamiento;
    }

    public int getDuracionEnMinutos() {
        return duracionEnMinutos;
    }

    public void setDuracionEnMinutos(int duracionEnMinutos) {
        this.duracionEnMinutos = duracionEnMinutos;
    }

    public boolean isIncluidoEnElPlan() {
        return incluidoEnElPlan;
    }

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

    public void evalua(double nota) {
        sumaDeEvaluaciones += nota;
        totalDeEvaluaciones++;
    }

    public double calculaMedia() {
        return sumaDeEvaluaciones / totalDeEvaluaciones;
    }

    public int getTotalDelasEvaluaciones() {
        return totalDeEvaluaciones;
    }

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

    @Override
    public String toString() {
        return "Nombre: " + nombre + " (" + fechaDeLanzamiento + ")";
    }
}

Serie.java sobrescribiendo toString

package com.aluracursos.screenmatch.modelos;

public class Serie extends Titulo {

    private int temporadas;
    private int episodiosPorTemporada;
    private int minutosPorEpisodio;

    public int getTemporadas() {
        return temporadas;
    }

    public void setTemporadas(int temporadas) {
        this.temporadas = temporadas;
    }

    public int getEpisodiosPorTemporada() {
        return episodiosPorTemporada;
    }

    public void setEpisodiosPorTemporada(int episodiosPorTemporada) {
        this.episodiosPorTemporada = episodiosPorTemporada;
    }

    public int getMinutosPorEpisodio() {
        return minutosPorEpisodio;
    }

    public void setMinutosPorEpisodio(int minutosPorEpisodio) {
        this.minutosPorEpisodio = minutosPorEpisodio;
    }

    @Override
    public int getDuracionEnMinutos() {
        return temporadas * episodiosPorTemporada * minutosPorEpisodio;
    }

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

PrincipalConListas,java usando Collections.sort

package com.aluracursos.screenmatch.principal;

import com.aluracursos.screenmatch.modelos.Pelicula;
import com.aluracursos.screenmatch.modelos.Serie;
import com.aluracursos.screenmatch.modelos.Titulo;

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

public class PrincipalConListas {

    public static void main(String[] args) {

        Pelicula favorito = new Pelicula();
        favorito.setNombre("El señor de los anillos");
        favorito.setFechaDeLanzamiento(2001);

        Pelicula otro = new Pelicula();
        otro.setNombre("Avatar");
        otro.setFechaDeLanzamiento(2023);

        Serie serie = new Serie();
        serie.setNombre("Lost");
        serie.setFechaDeLanzamiento(2000);

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

        Collections.sort(lista);

        System.out.println(lista);
    }
}
1 respuesta

¡Hola Estudiante, espero que estés bien!

Parece que ya has implementado correctamente lo que se hizo en clase. Has hecho que la clase Titulo implemente la interfaz Comparable y has sobrescrito el método compareTo para ordenar los títulos por nombre. Además, en la clase Serie, has sobrescrito el método toString para personalizar la representación de las series.

En tu clase PrincipalConListas, también has utilizado Collections.sort para ordenar la lista de títulos, lo cual es exactamente lo que se solicitó en la actividad.

Todo parece estar en orden. Si estás experimentando algún problema específico o si hay algo que no está funcionando como esperabas, por favor, proporciona más detalles para que pueda ayudarte mejor.

Espero que esto te haya ayudado y te deseo buenos estudios. ¡Sigue así!