В 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.