Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Faça como eu fiz: ordenando com Comparable

public class Titulo implements Comparable<Titulo> {
    private String nome;
    private int anoLancamento;
    private boolean incluidoNoPlano;
    private double somaAvaliacoes;
    private int totalAvaliacoes;
    private int duracaoEmMinutos;

    // Construtor
    public Titulo(String nome, int anoLancamento) {
        this.nome = nome;
        this.anoLancamento = anoLancamento;
    }

    // Getters e Setters
    public String getNome() {
        return nome;
    }

    public int getAnoLancamento() {
        return anoLancamento;
    }

    public boolean isIncluidoNoPlano() {
        return incluidoNoPlano;
    }

    public void setIncluidoNoPlano(boolean incluidoNoPlano) {
        this.incluidoNoPlano = incluidoNoPlano;
    }

    public int getDuracaoEmMinutos() {
        return duracaoEmMinutos;
    }

    public void setDuracaoEmMinutos(int duracaoEmMinutos) {
        this.duracaoEmMinutos = duracaoEmMinutos;
    }

    public int getTotalAvaliacoes() {
        return totalAvaliacoes;
    }

    // Métodos de avaliação
    public void avalia(double nota) {
        somaAvaliacoes += nota;
        totalAvaliacoes++;
    }

    public double pegaMedia() {
        return somaAvaliacoes / totalAvaliacoes;
    }

    // Implementação do Comparable
    @Override
    public int compareTo(Titulo outroTitulo) {
        return this.nome.compareToIgnoreCase(outroTitulo.nome);
    }

    // Sobrescrita do toString
    @Override
    public String toString() {
        return "Titulo{" +
                "nome='" + nome + '\'' +
                ", anoLancamento=" + anoLancamento +
                ", duracaoEmMinutos=" + duracaoEmMinutos +
                '}';
    }
}
1 resposta
solução!

Oi, Eleazar! Como vai?

Sua classe Titulo tá muito bem organizada, com encapsulamento, sobrecarga do método toString e uso correto da interface Comparable pra ordenar por nome.

Isso mostra uma aplicação prática importante dos conceitos de orientação a objetos em Java.

Uma dica interessante para o futuro é que você pode ordenar também por ano de lançamento ou duração, usando um Comparator. Veja um exemplo:


import java.util.Comparator;

public class ComparadorPorAno implements Comparator {
    @Override
    public int compare(Titulo t1, Titulo t2) {
        return Integer.compare(t1.getAnoLancamento(), t2.getAnoLancamento());
    }
}

O código cria um comparador para ordenar objetos Titulo pelo ano de lançamento.

Conteúdos relacionados
Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!