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

ordenando con Comparable

package com.somosego.screemmach.principal;

import com.somosego.screemmach.modelos.Pelicula;
import com.somosego.screemmach.modelos.Serie;
import com.somosego.screemmach.modelos.Titulo;

import java.util.*;

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

        //Peliculas vistas
        var pelicula = new Pelicula("El Justiciero", 2017,true);
        pelicula.evalua(9);
        var peliculaEduar = new Pelicula("Constantine",2005,true);
        peliculaEduar.evalua(10);
        var pelicula3 = new Pelicula("el origen",2012,true);
        pelicula3.evalua(9);

        //Pelicula p1 = peliculaEduar;

        //Series vistas
        var serie1 = new Serie("Los 100",2014,true);
        serie1.evalua(9);

        //Lista
        ArrayList<Titulo> lista = new ArrayList<>();
        lista.add(pelicula);
        lista.add(pelicula3);
        lista.add(peliculaEduar);
        lista.add(serie1);

        for (Titulo item : lista) {
            System.out.println(item.getNombre());

            if(item instanceof Pelicula pelicula2 && pelicula2.getClasificacion() >  2) {
                System.out.println(pelicula3.getClasificacion());
            }
        }

        List<String> listaArtistas = new LinkedList<>();
        listaArtistas.add("penelope Cruz");
        listaArtistas.add("Antonio bandera");
        listaArtistas.add("Ricardo Darin");

        System.out.println("lista de artista no ordenada: " + listaArtistas);
        Collections.sort(listaArtistas);
        System.out.println("Lista de artista ordenada: " + listaArtistas);

        Collections.sort(lista);
        System.out.println("lista de titulos: " + lista);

        lista.sort(Comparator.comparing(Titulo :: getFechaDeLanzamiento));
        System.out.println("ordenado por fecha " + lista);
    }
}
package com.somosego.screemmach.modelos;

public class Titulo implements Comparable<Titulo>{

    private String nombre;
    private int fechaDeLanzamiento;
    private int duracion;
    private boolean incluidoEnElPlan;
    private double sumaDeEvaluaciones,totalDeEvaluaciones;

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

    public double getTotalDeEvaluaciones() {
        return totalDeEvaluaciones;
    }

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

    public String getNombre() {
        return nombre;
    }

    public int getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }

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

    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;
    }

    public double getSumaDeEvaluaciones() {
        return sumaDeEvaluaciones;
    }

    public void setSumaDeEvaluaciones(double sumaDeEvaluaciones) {
        this.sumaDeEvaluaciones = sumaDeEvaluaciones;
    }

    public void setTotalDeEvaluaciones(double totalDeEvaluaciones) {
        this.totalDeEvaluaciones = totalDeEvaluaciones;
    }

    public void muestraFichaTecnica(){

        System.out.println("Nombre " + getNombre());
        System.out.println("Lanzada el " + getFechaDeLanzamiento());
        System.out.println("Duracion en minutos " + getDuracion());
    }

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

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

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

Hola Eduar, espero que estés bien

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!