Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

List.sort()

Сортирует список на месте по заданному правилу.

Доступно с: Java 8

Синтаксис

default void sort(Comparator<? super E> c)

Параметры

ПараметрТипОписание
cComparator<? super E>Правило сравнения; `null` — естественный порядок элементов.

Примеры

По возрастанию и по убыванию:

void main() {
    List<Integer> nums = new ArrayList<>(List.of(5, 2, 9, 1));
    nums.sort(null);
    IO.println(nums);
    nums.sort(Comparator.reverseOrder());
    IO.println(nums);
}

Результат:

[1, 2, 5, 9]
[9, 5, 2, 1]

Строки по длине, затем по алфавиту:

void main() {
    List<String> words = new ArrayList<>(List.of("pear", "fig", "apple", "kiwi"));
    words.sort(Comparator.comparing(String::length).thenComparing(Comparator.naturalOrder()));
    IO.println(words);
}

Результат:

[fig, kiwi, pear, apple]

Примечания

Сортировка устойчивая: равные элементы сохраняют исходный порядок. Метод меняет сам список, поэтому неизменяемый List.of() бросит UnsupportedOperationException. Чтобы получить отсортированную копию, используйте stream().sorted().toList().

См. также

  • Collections.sort() — Сортирует список на месте.
  • Comparator.comparing() — Создаёт компаратор, который сравнивает объекты по одному полю.
  • Stream.sorted() — Сортирует элементы потока.

Вопросы и ответы по теме

В учебнике

  • Сортировка и компараторы — Сортировка коллекций в Java: естественный порядок, обратный порядок, интерфейс Comparable, Comparator.comparing и сортировка по нескольким полям.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.