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