1
resposta

Implementação de Compare()

Gostaria de entender pq este código não funciona em comparação com o apresentado pelo professor...

Minha implementação:

public class OrdenaPorIdade implements Comparator<Funcionario> {

    @Override
    public int compare(Funcionario f1, Funcionario f2) {
        return f1.getIdade().compareTo(f2.getIdade());
    }
}

Do professor:

public class OrdenaPorIdade implements Comparator<Funcionario>{

    @Override
    public int compare(Funcionario funcionario, Funcionario outroFuncionario) {
        return funcionario.getIdade() - outroFuncionario.getIdade();
    }

}
1 resposta

Fala, Gabriel! Tudo tranquilo?

O seu código deve funcionar normalmente, de acordo com a lógica do compareTo(). O que pode estar acontecendo é que o getIdade() está retornando um inteiro do tipo primitivo (int).

Tente alterar o tipo do retorno do getIdade() de int para Integer e me avisa aqui se deu certo. Pode ser?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software