Collections.sort()
Сортирует список на месте.
Доступно с: Java 1.2
Синтаксис
static <T extends Comparable<? super T>> void sort(List<T> list)
static <T> void sort(List<T> list, Comparator<? super T> c)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| list | List<T> | Сортируемый изменяемый список. |
| c | Comparator<? super T> | Необязательное правило сравнения. |
Примеры
Естественный порядок и порядок по правилу:
void main() {
List<String> names = new ArrayList<>(List.of("Oleg", "anna", "Ivan"));
Collections.sort(names);
IO.println(names);
Collections.sort(names, String.CASE_INSENSITIVE_ORDER);
IO.println(names);
}Результат:
[Ivan, Oleg, anna]
[anna, Ivan, Oleg]Примечания
С Java 8 тот же результат даёт list.sort(comparator) — в новом коде чаще пишут так. Строки сортируются по кодам символов, поэтому заглавные буквы идут раньше строчных. Элементы без Comparable требуют компаратора, иначе ошибка компиляции.
См. также
- List.sort() — Сортирует список на месте по заданному правилу.
- Comparator.comparing() — Создаёт компаратор, который сравнивает объекты по одному полю.
- Collections.reverse() — Разворачивает порядок элементов списка на месте.
Вопросы и ответы по теме
В учебнике
- Сортировка и компараторы — Сортировка коллекций в Java: естественный порядок, обратный порядок, интерфейс Comparable, Comparator.comparing и сортировка по нескольким полям.