Método Java sort ()

Em Java, a estrutura de coleções fornece um método estático sort () que pode ser usado para classificar elementos em uma coleção.

O sort()método da estrutura de coleções usa o algoritmo de classificação por mesclagem para classificar os elementos de uma coleção.

O algoritmo de classificação por mesclagem é baseado na regra de divisão e conquista. Para saber mais sobre a classificação de mesclagem, visite Algoritmo de classificação de mesclagem.

Vamos dar um exemplo do sort()método.

Exemplo: classificação em ordem crescente

 import java.util.ArrayList; import java.util.Collections; class Main ( public static void main(String() args) ( // Creating an array list ArrayList numbers = new ArrayList(); // Add elements numbers.add(4); numbers.add(2); numbers.add(3); System.out.println("Unsorted ArrayList: " + numbers); // Using the sort() method Collections.sort(numbers); System.out.println("Sorted ArrayList: " + numbers); ) ) 

Resultado

 ArrayList não classificado: (4, 2, 3) Sorted ArrayList: (2, 3, 4) 

Como você pode ver, por padrão, a classificação ocorre em ordem natural (ordem crescente). No entanto, podemos personalizar a ordem de classificação do sort()método.

Ordem de classificação personalizada

Em Java, o sort()método pode ser personalizado para realizar a classificação em ordem reversa usando a Comparatorinterface.

Exemplo: classificação em ordem decrescente

 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; class Main ( public static void main(String() args) ( // Creating an array list ArrayList numbers = new ArrayList(); // Add elements numbers.add(4); numbers.add(2); numbers.add(3); System.out.println("Unsorted ArrayList: " + numbers); // Using the sort() method Collections.sort(numbers); System.out.println("Natural Sorting: " + numbers); // Using the customized sort() method Collections.sort(numbers, new CustomComparator()); System.out.println("Customized Sorting: " + numbers); ) ) class CustomComparator implements Comparator ( @Override public int compare(Integer animal1, Integer animal2) ( int value = animal1.compareTo(animal2); // elements are sorted in reverse order if (value> 0) ( return -1; ) else if (value < 0) ( return 1; ) else ( return 0; ) ) ) 

Resultado

 ArrayList não classificado: (4, 2, 3) Classificação natural: (2, 3, 4) Classificação personalizada: (4, 3, 2) 

No exemplo acima, usamos o sort()método com CustomComparator como argumento.

Aqui, CustomComparator é uma classe que implementa a Comparatorinterface. Saiba mais sobre a Interface de comparação Java.

Em seguida, substituímos o compare()método. O método agora classificará os elementos na ordem inversa.

Artigos interessantes...