В 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()
метод. Теперь метод будет сортировать элементы в обратном порядке.