Найти в Дзене
DEBAGanov

Java 1133. Для чего в стримах предназначен метод sorted()?

Метод sorted() в потоках (streams) Java предназначен для сортировки элементов потока. Этот метод может принимать один аргумент - компаратор (comparator), который определяет порядок сортировки. Если компаратор не указан, то элементы сортируются в естественном порядке исходного типа элементов. Например, если у нас есть поток целых чисел, мы можем отсортировать его таким образом: List<Integer> list = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5);
list.stream()
.sorted()
.forEach(System.out::println); Это выведет отсортированный список чисел. Также, если у нас есть поток объектов, мы можем использовать компаратор для сортировки по нескольким полям объекта: List<Person> people = Arrays.asList(
new Person("John", 20),
new Person("Jane", 23),
new Person("John", 40),
new Person("Jane", 30)
);
people.stream()
.sorted(Comparator.comparing(Person::getName).thenComparing(Person::getAge))
.forEach(System.out::println); Это отсортирует список людей сначала по имени

Метод sorted() в потоках (streams) Java предназначен для сортировки элементов потока. Этот метод может принимать один аргумент - компаратор (comparator), который определяет порядок сортировки. Если компаратор не указан, то элементы сортируются в естественном порядке исходного типа элементов.

Например, если у нас есть поток целых чисел, мы можем отсортировать его таким образом:

List<Integer> list = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5);
list.stream()
.sorted()
.forEach(System.out::println);

Это выведет отсортированный список чисел.

Также, если у нас есть поток объектов, мы можем использовать компаратор для сортировки по нескольким полям объекта:

List<Person> people = Arrays.asList(
new Person("John", 20),
new Person("Jane", 23),
new Person("John", 40),
new Person("Jane", 30)
);
people.stream()
.sorted(Comparator.comparing(Person::getName).thenComparing(Person::getAge))
.forEach(System.out::println);

Это отсортирует список людей сначала по имени, а затем по возрасту.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov