Назад к вопросам
Junior
69
questionbank

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

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Метод sorted() в Java Streams используется для создания стрима, элементы которого отсортированы. Существует две перегрузки этого метода:

  1. sorted(): Сортирует элементы в естественном порядке (для типов, реализующих Comparable).

    Stream<String> stringStream = Stream.of("banana", "apple", "cherry");
    Stream<String> sortedStream = stringStream.sorted(); // Отсортирует по алфавиту
    
  2. sorted(Comparator<? super T> comparator): Сортирует элементы в соответствии со заданным Comparator.

    Stream<Integer> intStream = Stream.of(5, 2, 8, 1);
    Stream<Integer> sortedStreamDesc = intStream.sorted(Comparator.reverseOrder()); // Отсортирует в порядке убывания
    
    List<Person> people = Arrays.asList(
        new Person("Alice", 30),
        new Person("Bob", 25),
        new Person("Charlie", 35)
    );
    Stream<Person> sortedPeopleByAge = people.stream().sorted(Comparator.comparingInt(Person::getAge)); // Отсортирует по возрасту
    

Метод sorted() является промежуточной операцией в стриме. Это означает, что он возвращает новый стрим, а не модифицирует исходный. Сортировка выполняется лениво при выполнении терминальной операции.