Ответ
Collections.sort() — это утилитарный статический метод класса java.util.Collections для сортировки элементов в списках, реализующих интерфейс List. Начиная с Java 8, он использует гибридный алгоритм TimSort (адаптированный MergeSort), который гарантирует:
- Стабильность — равные элементы не меняют свой относительный порядок.
- Производительность — временная сложность O(n log n) в среднем и худшем случае.
- Адаптивность — эффективно работает с частично отсортированными данными.
Способы сортировки:
-
Естественный порядок (Natural Ordering): Элементы должны реализовывать интерфейс
Comparable<T>.List<Integer> numbers = Arrays.asList(5, 1, 9); Collections.sort(numbers); // Список изменяется на месте System.out.println(numbers); // [1, 5, 9] -
С помощью Comparator: Позволяет задать произвольный порядок сортировки.
List<String> words = Arrays.asList("banana", "apple", "cherry"); // Сортировка по длине строки Collections.sort(words, Comparator.comparingInt(String::length)); System.out.println(words); // [apple, banana, cherry]
Ключевые особенности:
- Работает только с
List(не применим кSetилиMapнапрямую). - Модифицирует исходный список, а не возвращает новый.
- В Java 8+ для списков предпочтительнее использовать метод
List.sort(Comparator). - Для массивов используйте
Arrays.sort().