Метод Java sort ()

В Java структура коллекций предоставляет статический метод sort (), который можно использовать для сортировки элементов в коллекции.

sort()Метод рамок коллекций использует алгоритм сортировки слияния для сортировки элементов коллекции.

Алгоритм сортировки слиянием основан на правиле «разделяй и властвуй». Чтобы узнать больше о сортировке слиянием, посетите раздел Алгоритм сортировки слиянием.

Возьмем пример sort()метода.

Пример: сортировка по возрастанию

 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); ) ) 

Вывод

 Несортированный список массивов: (4, 2, 3) Список отсортированных массивов: (2, 3, 4) 

Как видите, по умолчанию сортировка происходит в естественном порядке (по возрастанию). Однако мы можем настроить порядок сортировки sort()метода.

Индивидуальный порядок сортировки

В Java sort()метод можно настроить для выполнения сортировки в обратном порядке с помощью Comparatorинтерфейса.

Пример: сортировка по убыванию

 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; ) ) ) 

Вывод

 Несортированный список массивов: (4, 2, 3) Естественная сортировка: (2, 3, 4) Настраиваемая сортировка: (4, 3, 2) 

В приведенном выше примере мы использовали sort()метод с CustomComparator в качестве аргумента.

Здесь CustomComparator - это класс, реализующий Comparatorинтерфейс. Узнайте больше об интерфейсе компаратора Java.

Затем мы переопределяем compare()метод. Теперь метод будет сортировать элементы в обратном порядке.

Интересные статьи...