Что такое метод Stream.sorted() в Java

Cto Takoe Metod Stream Sorted V Java



В Java могут быть определенные случаи, когда программисту необходимо отсортировать записи в соответствии с требованием. Например, извлечение несортированных или случайно сгенерированных значений определенным образом (по возрастанию или по убыванию). В таких ситуациях « Stream.sorted() ” помогает эффективно сортировать данные на стороне разработчика.

В этой статье подробно рассказывается об использовании и реализации метода «Stream.sorted()» в Java.







Что такое метод «Stream.sorted()» в Java?

Stream.sorted() ” соответствует методу “ Транслировать интерфейс. Этот метод дает отсортированный поток, не влияя на порядок элементов/элементов в исходном потоке.



Синтаксис



Случай 1: без параметра





поток.сортированный ( )

Случай 2: с параметром



поток.сортированный ( комп )

В этом синтаксисе « комп ” относится к компаратору, на основе которого будет выполняться сортировка.

Прежде чем перейти к примерам, обязательно включите следующий пакет. Этот пакет включает в себя классы, интерфейсы и т. д., позволяющие выполнять операции над элементами в функциональном стиле:

импортировать java.util.stream. * ;

Пример 1. Применение метода «Stream.sorted()» для сортировки (по возрастанию и убыванию) целых чисел в Java

Stream.of() ” используется для создания последовательного потока для заданных элементов. В данном примере этот метод можно применять в сочетании с « Stream.sorted() ” для сортировки потока целых чисел по возрастанию и убыванию:

открытый класс отсортирован {
публичная статическая пустота главная ( Нить [ ] аргументы ) {
Транслировать < Целое число > sortStream1 = Stream.of ( 2 , 4 , 3 , 5 , 1 ) ;
Транслировать < Целое число > sortStream2 = Stream.of ( 9 , 6 , 7 , 8 , 10 ) ;
System.out.println ( 'Первый поток:' ) ;
sortStream1.sorted ( ) .для каждого ( System.out::println ) ;
System.out.println ( ' \n Второй поток: ' ) ;
sortStream2.sorted ( ( а, б ) - > б-а ) .для каждого ( System.out::println ) ;
} }

В этом фрагменте кода:

  • Создайте два разных целочисленных потока через « из() метод.
  • После этого свяжите « отсортировано() ” с созданным прежним потоком для сортировки потока в “ Восходящий ' заказ.
  • Теперь примените « отсортировано() » еще раз с последним потоком, чтобы вернуть поток в « нисходящий » порядок в соответствии с указанным компаратором, т. е. « б-а ».
  • Наконец, отобразите поток отсортированных целых чисел в обоих случаях на консоли.

Выход

В этом выводе видно, что оба потока отсортированы соответствующим образом.

Прежде чем перейти к следующему примеру, включите приведенный ниже пример, чтобы получить доступ ко всем классам и методам:

импортировать java.util. * ;

Пример 2. Применение метода «Stream.sorted()» для сортировки объектов класса

В этом конкретном примере обсуждаемый метод может быть реализован на объектах класса для сортировки переданных значений:

Данные класса {
инт идентификатор ;
Имя строки;
Данные ( инт идентификатор ,имя строки ) {
это.id = идентификатор ;
это.имя = имя;
}
общедоступная строка toString ( ) {
возвращаться 'идентификатор = ' + этот.id
+ ', имя=' + это.имя;
} }
класс потоковой сортировки {
публичная статическая пустота главная ( Нить [ ] аргументы ) {
Список < Данные > список = новый список массивов < Данные > ( ) ;
список.добавить ( новые данные ( 2 , 'Гарри' ) ) ;
список.добавить ( новые данные ( 1 , 'Дэйвид' ) ) ;
список.добавить ( новые данные ( 3 , 'Том' ) ) ;
Транслировать < Данные > поток = список.поток ( ) ;
поток.сортированный ( ( е1, е2 ) - > e1.id - e2.id ) .для каждого ( System.out::println ) ;
} }

В этих строках кода выполните следующие шаги:

  • Во-первых, объявите класс с именем « Данные ».
  • В его определении укажите указанные переменные.
  • На следующем шаге включите конструктор параметризованного класса с параметрами, идентичными указанным переменным.
  • В определении конструктора обратитесь к указанным переменным и назначьте им переданные значения аргументов через « этот ».
  • Теперь переопределите « нанизывать() », чтобы вернуть переданные значения.
  • В ' основной() », создайте список объектов класса и добавьте указанные переданные значения в список через связанный « добавлять() метод.
  • После этого выберите поток из списка через « транслировать() метод.
  • Также примените « отсортировано() ” с указанным компаратором, который сравнивает два объекта на основе “ идентификатор ” в “ Восходящий манере.
  • Наконец, примените « для каждого() ” для регистрации потока отсортированных объектов на консоли.

Выход

В этом результате можно проанализировать, правильно ли отсортированы значения объектов.

Заключение

Stream.sorted() ” – это метод, соответствующий “ Транслировать », который дает отсортированный поток, не влияя на порядок элементов/элементов в исходном потоке. Этот метод сортирует элементы по умолчанию, а также на основе указанного компаратора. В этом блоге обсуждалось использование и реализация метода Stream.sorted() в Java.