Nesta aula, analisamos quando usar
Comparator em vez de
Comparable, a sintaxe e o contrato do método
compare(T o1, T o2), a prática de ordenar listas com
Collections.sort e
List.sort, criação de comparadores como classes separadas, bem como por meio de classes anônimas e expressões lambda. Veremos ordenação em múltiplos níveis, trabalho com valores
null, busca com
Collections.binarySearch, inversão da ordem com
reversed(), além de boas práticas e erros comuns (por exemplo, por que é melhor usar
Integer.compare em vez de
a - b).