En Java, el marco de colecciones proporciona un método estático sort () que se puede utilizar para ordenar elementos en una colección.
El sort()
método del marco de colecciones utiliza el algoritmo de clasificación por combinación para clasificar los elementos de una colección.
El algoritmo de clasificación por fusión se basa en la regla de divide y vence. Para obtener más información sobre la ordenación por combinación, visite Algoritmo de ordenación por combinación.
Tomemos un ejemplo del sort()
método.
Ejemplo: clasificación en orden ascendente
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); ) )
Salida
ArrayList sin clasificar: (4, 2, 3) ArrayList ordenado: (2, 3, 4)
Como puede ver, de forma predeterminada, la clasificación se produce en orden natural (orden ascendente). Sin embargo, podemos personalizar el orden de clasificación del sort()
método.
Orden de clasificación personalizado
En Java, el sort()
método se puede personalizar para realizar la clasificación en orden inverso utilizando la Comparator
interfaz.
Ejemplo: clasificación en orden descendente
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; ) ) )
Salida
Lista de matrices sin clasificar: (4, 2, 3) Clasificación natural: (2, 3, 4) Clasificación personalizada: (4, 3, 2)
En el ejemplo anterior, hemos utilizado el sort()
método con CustomComparator como argumento.
Aquí, CustomComparator es una clase que implementa la Comparator
interfaz. Obtenga más información sobre la interfaz de comparación de Java.
Luego anulamos el compare()
método. El método ahora ordenará los elementos en orden inverso.