Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Diferenca entre Lambda e Reference

De acordo com a aula, Lambda e MethodReference sao equivalentes, realmente posso confirmar isso atraves do EXEMPLO 1, uma vez que eles possuem a mesma saida. Porem porque quando tento utilizar o metodo reversed() presente na Interface Comparator, ele so funciona para o MethodReference ?

Existe uma forma de ordernar ASC, utilizando Lambda e Comparator.comparing ?

public class classePrincipal {

    public static void main(String[] args) {

        List<Aluno> listaDeAlunos = new ArrayList<>();

        listaDeAlunos.add(new Aluno("Teste", 7));
        listaDeAlunos.add(new Aluno("Cristiano", 8));
        listaDeAlunos.add(new Aluno("Maria Mendonca", 3));
        listaDeAlunos.add(new Aluno("Joao das Couves", 5));

        //EXEMPLO 1
        listaDeAlunos.sort(Comparator.comparing(Aluno::getNota));

        listaDeAlunos.sort(Comparator.comparing(aluno -> aluno.getNota()));


        //EXEMPLO 2
        listaDeAlunos.sort(Comparator.comparing(Aluno::getNota).reversed());

        listaDeAlunos.sort(Comparator.comparing(aluno -> aluno.getNota()).reversed());

    }
}

insira seu código aqui

1 resposta

Fala Cristiano, tudo bem?

Funciona com Lambda também:

listaDeAlunos.sort(Comparator.comparing((Aluno aluno) -> aluno.getI()).reversed());

O que ocorre é que você precisa informar o tipo do objeto, se você não informar será considerado Object.