РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
476 of 1163 menu

Метод sorted

Метод sorted класса Stream сортирует элементы потока и возвращает новый поток, состоящий из отсортированных элементов. По умолчанию сортировка происходит в естественном порядке (для чисел - по возрастанию, для строк - в лексикографическом порядке). Метод является промежуточной операцией и не изменяет исходный поток. Если необходимо задать собственный порядок сортировки, в параметр можно передать Comparator.

Синтаксис

stream.sorted() stream.sorted(comparator)

Пример

Давайте отсортируем поток чисел в естественном порядке:

import java.util.stream.Stream; public class Main { public static void main(String[] args) { Stream<Integer> stream = Stream.of(3, 1, 5, 2, 4); stream.sorted().forEach(System.out::println); } }

Результат выполнения кода:

1 2 3 4 5

Пример

Давайте отсортируем поток строк в обратном порядке, передав компаратор в параметр метода:

import java.util.stream.Stream; public class Main { public static void main(String[] args) { Stream<String> stream = Stream.of("abcde", "12345", "bcd", "a"); stream.sorted((a, b) -> b.length() - a.length()) .forEach(System.out::println); } }

Результат выполнения кода:

"abcde" "12345" "bcd" "a"

Пример

Давайте отсортируем список чисел по убыванию и соберем результат в новый список:

import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> numbers = List.of(5, 3, 1, 4, 2); List<Integer> res = numbers.stream() .sorted((a, b) -> b - a) .collect(Collectors.toList()); System.out.println(res); } }

Результат выполнения кода:

[5, 4, 3, 2, 1]

Смотрите также

  • метод distinct,
    который удаляет дубликаты из потока
  • метод filter,
    который фильтрует элементы потока
  • метод map,
    который преобразует элементы потока
  • метод collect,
    который собирает элементы потока в коллекцию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить