TÌTULO
package br.com.screenmatch.modelos;
public class Titulo implements Comparable<Titulo> {
private String nome;
private int anoDeLancamento;
private boolean incluidoNoPlano;
private double somaDasAvaliacoes;
private int totalDeAvaliacoes;
private int duracaoEmMinutos;
public Titulo(String nome, int anoDeLancamento) {
this.nome = nome;
this.anoDeLancamento = anoDeLancamento;
}
public String getNome() {
return nome;
}
public int getAnoDeLancamento() {
return anoDeLancamento;
}
public boolean isIncluidoNoPlano() {
return incluidoNoPlano;
}
public int getDuracaoEmMinutos() {
return duracaoEmMinutos;
}
public int getTotalDeAvaliacoes() {
return totalDeAvaliacoes;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setAnoDeLancamento(int anoDeLancamento) {
this.anoDeLancamento = anoDeLancamento;
}
public void setIncluidoNoPlano(boolean incluidoNoPlano) {
this.incluidoNoPlano = incluidoNoPlano;
}
public void setDuracaoEmMinutos(int duracaoEmMinutos) {
this.duracaoEmMinutos = duracaoEmMinutos;
}
public void exibeFichaTecnica(){
System.out.println("Nome do filme: " + nome);
System.out.println("Ano de lançamento: " + anoDeLancamento);
}
public void avalia(double nota){
somaDasAvaliacoes += nota;
totalDeAvaliacoes++;
}
public double pegaMedia(){
return somaDasAvaliacoes / totalDeAvaliacoes;
}
@Override
public int compareTo(Titulo outro) {
return this.nome.compareTo(outro.nome);
}
@Override
public String toString() {
return nome + " (" + anoDeLancamento + ")";
}
}
**PRINCIPAL COM LISTAS **
package br.com.screenmatch.principal;
import br.com.screenmatch.modelos.Titulo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class PrincipalComListas {
public static void main(String[] args) {
Titulo t1 = new Titulo("Interestelar", 2014);
Titulo t2 = new Titulo("Avatar", 2009);
Titulo t3 = new Titulo("O Poderoso Chefão", 1972);
t1.avalia(9);
t1.avalia(10);
t2.avalia(8);
t2.avalia(9);
t3.avalia(10);
t3.avalia(10);
ArrayList<Titulo> lista = new ArrayList<>();
lista.add(t1);
lista.add(t2);
lista.add(t3);
Collections.sort(lista);
System.out.println("Ordenado por nome:");
System.out.println(lista);
lista.sort(Comparator.comparing(Titulo::getAnoDeLancamento));
System.out.println("\nOrdenado por ano:");
System.out.println(lista);
lista.sort(Comparator.comparing(Titulo::pegaMedia).reversed());
System.out.println("\nOrdenado por nota:");
System.out.println(lista);
lista.sort(Comparator.comparing(Titulo::getDuracaoEmMinutos));
System.out.println("\nOrdenado por duração:");
System.out.println(lista);
}
}