Implementar a interface Comparable
Adicionei o Comparable na classe, com o implements:
public class Tipo implements Comparable<Tipo>
E no método coloquei desta forma:
@Override
public int compareTo(Tipo outroTipo) {
return this.getNome().compareTo(outroTipo.getNome());
}
Meu main ficou dessa forma:
Filme filme1 = new Filme("Interestelar", 2015, "Um grupo de exploradores viaja através de um buraco de minhoca em busca de um novo lar para a humanidade.", true,8.7, "Christopher Nolan",169);
Filme filme2 = new Filme("Tropa de Elite", 2007, "Um capitão do BOPE tenta combater o tráfico de drogas no Rio de Janeiro.", true, 8.1, "José Padilha",115 );
Serie serie1 = new Serie("Breaking Bad", 2008, "Um professor de química se torna um fabricante de metanfetamina após ser diagnosticado com câncer.", true, 9.5, 0, 5, 13);
Filme f1 = new Filme("Cidade de Deus", 2002, 8.7);
Filme f2 = new Filme("De Volta Para o Futuro" ,1985, 10.0);
List<Tipo> listaFilmes = new LinkedList<>();
listaFilmes.add(filme1);
listaFilmes.add(filme2);
listaFilmes.add(f1);
listaFilmes.add(f2);
listaFilmes.add(serie1);
System.out.println("Array geral: ");
System.out.println(listaFilmes);
Collections.sort(listaFilmes);
System.out.println("\nOrdenando conteúdo por título: ");
System.out.println(listaFilmes);
System.out.println("\nOrdenando por ano de lançamento: ");
listaFilmes.sort(Comparator.comparing(Tipo::getAnoLancamento));
System.out.println(listaFilmes);
E a saída no console ficou assim, ordenado de duas formas diferentes:
Array geral:
[Filme: Interestelar (2015), Filme: Tropa de Elite (2007), Filme: Cidade de Deus (2002), Filme: De Volta Para o Futuro (1985), Série: Breaking Bad(2008)]
Ordenando conteúdo por título:
[Série: Breaking Bad(2008), Filme: Cidade de Deus (2002), Filme: De Volta Para o Futuro (1985), Filme: Interestelar (2015), Filme: Tropa de Elite (2007)]
Ordenando por ano de lançamento:
[Filme: De Volta Para o Futuro (1985), Filme: Cidade de Deus (2002), Filme: Tropa de Elite (2007), Série: Breaking Bad(2008), Filme: Interestelar (2015)]
Process finished with exit code 0