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

package com.entronomia.aplicaciones.modelos;

public class Titulo implements Comparable<Titulo>{

    private String nombre;
    private int fechaDeLanzamiento;
    private int duracionEnMinutos;
    private boolean incluidaEnElPlan;
    private double sumaDeLasEvaluaciones = 0;
    private int numeroDeEvaluaciones = 0;
    private double mediaDeLasEvaluaciones = 0;

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

    public String getNombre() {
        return nombre;
    }

    public int getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }

    public int getDuracionEnMinutos() {
        return duracionEnMinutos;
    }

    public boolean isIncluidaEnElPlan() {
        return incluidaEnElPlan;
    }

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

    public void setIncluidaEnElPlan(boolean incluidaEnElPlan) {
        this.incluidaEnElPlan = incluidaEnElPlan;
    }

    public double getMediaDeLasEvaluaciones() {
        return mediaDeLasEvaluaciones;
    }

    public void imprimeDatos() {
        System.out.println("Nombre de la película: " + getNombre());
        System.out.println("Fecha de lanzamiento: " + getFechaDeLanzamiento());
        System.out.println("Duración [min]: " + getDuracionEnMinutos());
    }

    public void evaluaPelicula(double nota) {
        sumaDeLasEvaluaciones = sumaDeLasEvaluaciones + nota;
        numeroDeEvaluaciones = numeroDeEvaluaciones +1;
    }

    public double calculaMediaDeLasEvaluaciones() {
        mediaDeLasEvaluaciones = sumaDeLasEvaluaciones / numeroDeEvaluaciones;
        return mediaDeLasEvaluaciones;
    }

    public int getClasificacion() {
        return (int) (calculaMediaDeLasEvaluaciones() / 2);
    }

    @Override
    public int compareTo(Titulo titulo) {
        return this.getNombre().compareTo(titulo.getNombre());
    }
}
package com.entronomia.aplicaciones.modelos;

import com.entronomia.aplicaciones.calculos.Clasificacion;

public class Serie extends Titulo implements Clasificacion {
    private int temporadas;
    private int episodiosPorTemporada;
    private int minutosPorEpisodio;

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

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

    public int getTemporadas() {
        return temporadas;
    }

    public int getEpisodiosPorTemporada() {
        return episodiosPorTemporada;
    }

    public int getMinutosPorEpisodio() {
        return minutosPorEpisodio;
    }

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

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

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

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

    @Override
    public int getClasificacion() {
        return super.getClasificacion();
    }
}
package com.entronomia.aplicaciones.principal;

import com.entronomia.aplicaciones.modelos.Pelicula;
import com.entronomia.aplicaciones.modelos.Serie;
import com.entronomia.aplicaciones.modelos.Titulo;

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

public class InventarioUno {
    public static void main(String[] args) {
        Pelicula peliculaI = new Pelicula("2012", 2009);
        Pelicula peliculaII = new Pelicula("Lawrence de Arabia", 1962);
        Pelicula peliculaIII = new Pelicula("Ciudadano Kane", 1940);
        Serie serieI = new Serie("La reina de Indias y el conquistador", 2020);
        ArrayList<Titulo> listaDeTitulos = new ArrayList<>();
        listaDeTitulos.add(peliculaI);
        listaDeTitulos.add(peliculaII);
        listaDeTitulos.add(peliculaIII);
        listaDeTitulos.add(serieI);

        ArrayList<String> nombreFisicos = new ArrayList<>();
        nombreFisicos.add("Albert Einstein");
        nombreFisicos.add("Max Planck");
        nombreFisicos.add("Isaac Newton");
        nombreFisicos.add("Niels Bohr");
        nombreFisicos.add("Galileo Galilei");
        nombreFisicos.add("Michael Faraday");
        System.out.println("Lista físicos desordenada: " + nombreFisicos);
        Collections.sort(nombreFisicos);
        System.out.println("Lista físicos ordenada: " + nombreFisicos);
        Collections.sort(listaDeTitulos);
        System.out.println("Lista títulos ordenada: " + listaDeTitulos);
    }
}
1 respuesta

Hola Roberto, espero que estés bien

Considero su código muy bueno, en este momento no veo puntos de mejora. ¡Continúa con sus estudios y éxito en su carrera!

Gracias por compartir tu ejercício práctico con nosotros! Tu contribución es fundamental para el crecimiento de nuestra comunidad en Alura. Sigue comprometido y no dudes en regresar al foro en caso que tengas alguna duda o dificultad.

¡Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!