Pessoal, boa tarde !!!
Estou com um Erro de Compilação para fazer um Sort de uma lista. Alguém pode me ajudar ??
Abraços !!
===> estou utilizando JDK 17.0.5
Referente ao curso Java e java.util: Coleções, Wrappers e Lambda expressions, no capítulo Ordenação de listas (item 7) Link da aula ==> https://cursos.alura.com.br/course/java-util-lambdas/task/37830
Implementei o código abaixo, a princípio de acordo com a aula, mas dá erro de compilação no comando ==> lista.sort(ordenado);
package testArrayListas; import java.util.ArrayList; import java.util.Comparator; import java.util.List;
import arrayAndList.Conta; import arrayAndList.ContaCorrente; import arrayAndList.ContaPoupanca;
public class TestaSortLista {
public static void main(String[] args) {
Conta cc1 = new ContaCorrente(22, 33);
Conta cc2 = new ContaPoupanca(22, 44);
Conta cc3 = new ContaCorrente(22, 11);
Conta cc4 = new ContaPoupanca(22, 22);
List<Conta> lista = new ArrayList<>();
lista.add(cc1);
lista.add(cc2);
lista.add(cc3);
lista.add(cc4);
for (Conta conta : lista) {
System.out.println(conta);
}
System.out.println("-------------------------------");
for (Conta conta : lista) {
System.out.println(conta);
}
NumeroDaContaComparator ordenado = new NumeroDaContaComparator();
lista.sort(ordenado); **ERRO : **The method sort(Comparator<? super Conta>) in the type List<Conta> is not applicable for the arguments (NumeroDaContaComparator)
class NumeroDaContaComparator implements Comparator<Conta> {
@Override
public int compare(Conta c1, Conta c2) {
if (c1.getNumero() < c2.getNumero()) {
return -1;
}
if (c1.getNumero() > c2.getNumero()) {
return 1;
}
return 0;
}
}
}
}