Tenho algumas duvidas, vamos lá.
1° - Ao usar o lambda é criada a classe anonima?
2° - Quando eu utilizo o lambda para ordenação, como ensinado pelo professor, a minha IDE (intellij idea) sugere para eu alterar a utilização do lambda pelo método "comparing" da Classe Comparator, como mostrado abaixo. Gostaria de saber qual diferença desse metodo com o lambda e se ele cria classe anonima?
//Lambda
list.sort((cc1, cc2) -> Integer.compare(cc1.getAgencia(), cc2.getAgencia()));
//Alteração sugerida pela IDE.
//Comparing
list.sort(Comparator.comparingInt(Conta::getAgencia));
A IDE fez a mesma sugestão com o outro método que ordena por Strings:
//Lambda
Comparator<Conta> comp = (cc1, cc2) -> cc1.getTitular().getNome().compareTo(cc2.getTitular().getNome());
//Alteração sugerida pela IDE.
//Comparing
Comparator<Conta> comp = Comparator.comparing(cc -> cc.getTitular().getNome());
3° - Entre esses dois métodos há algum que seja mais indicado?