1
resposta

[Dúvida] Ordenando os cursos com ".sort"

dúvida: No meu códio eu coloquei o "cursos.sort(null);" e funcionou assim como o "Collections.sort(cursos);".

  • Como é que funcionou com essa escrita?

package br.com.alura; import java.util.*;

public class testeLista2 {

public static void main(String[] args) {

    String curso1 = "Java 8: Tire proveito dos novos recursos da linguagem";
    String curso2 = "Apache Camel";
    String curso3 = "Certificacao Java SE 8 Programmer I";

    ArrayList<String> cursos = new ArrayList<>();
    cursos.add(curso1);
    cursos.add(curso2);
    cursos.add(curso3);        

    cursos.sort(null);
    //Collections.sort(cursos);

    System.out.println(cursos);
}

}

1 resposta

Olá Luciano!

No seu código, a chamada "cursos.sort(null);" funcionou porque você está usando a versão do método sort() que é definida na classe List. Essa versão do método sort() é default e recebe um Comparator como parâmetro. Quando você passa null como parâmetro, o método sort() entende que deve usar a ordem natural dos elementos da lista para ordená-los.

Já o método "Collections.sort(cursos);" é uma sobrecarga do método sort() que recebe uma lista e usa a ordem natural dos elementos da lista para ordená-los.

Espero ter ajudado e bons estudos!