Какво представлява методът Stream.sorted() в Java

Kakvo Predstavlava Metod T 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() ” метод за сортиране на потока цели числа по възходящ и низходящ начин:

публичен клас сортиран {
публичен статичен void main ( низ [ ] аргументи ) {
Поток < Цяло число > 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 ( ' Вторият поток е: ' ) ;
sortStream2.sorted ( ( а, б ) - > б-а ) .за всеки ( System.out::println ) ;
} }

В този кодов фрагмент:

  • Създайте два различни целочислени потока чрез „ на() ” метод.
  • След това асоциирайте „ сортиран() ” със създадения предишен поток за сортиране на потока в „ възходящ ' поръчка.
  • Сега приложете „ сортиран() ” отново с последния поток, за да върне потока в „ низходящ ” ред в съответствие с посочения компаратор, т.е. б-а ”.
  • И накрая, покажете сортирания поток от цели числа и в двата случая на конзолата.

Изход

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

Преди да преминете към следващия пример, включете дадения по-долу пример за достъп до всички класове и методи:

импортиране на java.util. * ;

Пример 2: Прилагане на метода „Stream.sorted()“ за сортиране на обектите на класа

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

клас Данни {
вътр документ за самоличност ;
Име на низ;
Данни ( вътр документ за самоличност ,Име на низ ) {
this.id = документ за самоличност ;
this.name = име;
}
публичен низ към низ ( ) {
връщане 'id=' + this.id
+ ', име=' + това.име;
} }
клас streamsorted {
публичен статичен void main ( низ [ ] аргументи ) {
списък < Данни > списък = нов ArrayList < Данни > ( ) ;
списък.добавяне ( нови данни ( 2 , 'Хари' ) ) ;
списък.добавяне ( нови данни ( 1 , 'Дейвид' ) ) ;
списък.добавяне ( нови данни ( 3 , 'Том' ) ) ;
Поток < Данни > поток = списък.поток ( ) ;
поток.сортиран ( ( e1, e2 ) - > e1.id - e2.id ) .за всеки ( System.out::println ) ;
} }

В тези редове код изпълнете следните стъпки:

  • Първо, декларирайте клас с име „ Данни ”.
  • В дефиницията му посочете посочените променливи.
  • В следващата стъпка включете параметризиран конструктор на клас с параметри, идентични на посочените променливи.
  • В дефиницията на конструктора се обърнете към посочените променливи и им разпределете предадените стойности на аргумент чрез „ това ”.
  • Сега заменете „ toString() ” за връщане на предадените стойности.
  • в „ основен () ', създайте списък с обектите на класа и добавете посочените предадени стойности към списъка чрез свързания ' добави () ” метод.
  • След това изтеглете потока от списъка чрез „ поток () ” метод.
  • Също така приложете „ сортиран() ' метод с посочения компаратор, който сравнява два обекта въз основа на ' документ за самоличност 'в' възходящ ” начин.
  • Накрая приложете „ за всеки() ” за регистриране на потока от сортирани обекти на конзолата.

Изход

В този резултат може да се анализира, че стойностите на обекта са сортирани по подходящ начин.

Заключение

Stream.sorted() ” е методът, съответстващ на „ Поток ” интерфейс, който дава сортиран поток, без да засяга подреждането на елементите/елементите в оригиналния поток. Този метод сортира елементите по подразбиращ се начин, както и въз основа на посочения компаратор. Този блог обсъжда използването и прилагането на метода „Stream.sorted()“ в Java.