În Java, pot exista anumite situații în care programatorul trebuie să sorteze intrările în conformitate cu cerințele. De exemplu, preluarea valorilor nesortate sau generate aleatoriu într-un mod specific (crescător sau descrescător). În astfel de situații, „ Stream.sorted() ” metoda ajută la sortarea eficientă a datelor la sfârșitul dezvoltatorului.
Acest articol va detalia utilizarea și implementarea metodei „Stream.sorted()” în Java.
Ce este metoda „Stream.sorted()” în Java?
„ Stream.sorted() ” metoda corespunde cu “ Curent ” interfață. Această metodă oferă un flux sortat fără a afecta ordonarea elementelor/articolelor din fluxul original.
Sintaxă
Cazul 1: Niciun parametru
pârâu.sortat ( )
Cazul 2: Cu Parametru
pârâu.sortat ( comp )
În această sintaxă, „ comp ” se referă la comparatorul pe baza căruia se va face sortarea.
Înainte de a trece la exemple, asigurați-vă că includeți următorul pachet. Acest pachet cuprinde clase, interfețe, etc, pentru a permite operațiuni în stil funcțional asupra elementelor:
import java.util.stream. * ;
Exemplul 1: aplicarea metodei „Stream.sorted()” pentru a sorta (crescător și descrescător) numerele întregi în Java
„ Stream.of() ” este folosită pentru a crea un flux secvenţial pentru elementele date. În acest exemplu, această metodă poate fi aplicată combinată cu „ Stream.sorted() ” metoda de sortare a fluxului de numere întregi în mod crescător și descendent:
clasa publică sortată {public static void main ( Şir [ ] argumente ) {
Curent < Întreg > sortStream1 = Flux.of ( 2 , 4 , 3 , 5 , 1 ) ;
Curent < Întreg > sortStream2 = Flux.of ( 9 , 6 , 7 , 8 , 10 ) ;
System.out.println ( 'Primul flux este: ' ) ;
sortStream1.sorted ( ) .pentru fiecare ( System.out::println ) ;
System.out.println ( ' \n Al doilea flux este: ' ) ;
sortStream2.sorted ( ( a, b ) - > b-a ) .pentru fiecare ( System.out::println ) ;
} }
În acest fragment de cod:
- Creați două fluxuri întregi diferite prin intermediul „ de() ” metoda.
- După aceea, asociați „ sortat() ” metoda cu fostul flux creat pentru a sorta fluxul în „ ascendent ' Ordin.
- Acum, aplicați „ sortat() ” metoda din nou cu ultimul flux pentru a returna fluxul în „ Descendentă „Comandă în conformitate cu comparatorul specificat, adică „ b-a ”.
- În cele din urmă, afișați fluxul de numere întregi sortate în ambele cazuri pe consolă.
Ieșire
În această ieșire, se poate observa că ambele fluxuri sunt sortate corespunzător.
Înainte de a merge la următorul exemplu, includeți exemplul furnizat mai jos pentru a accesa toate clasele și metodele:
import java.util. * ;
Exemplul 2: aplicarea metodei „Stream.sorted()” pentru a sorta obiectele clasei
În acest exemplu particular, metoda discutată poate fi implementată pe obiectele clasei pentru a sorta valorile transmise:
Class Data {int id ;
Nume șir;
Date ( int id ,Nume șir ) {
aceasta.id = id ;
this.name = nume;
}
public String toString ( ) {
întoarcere 'id=' + aceasta.id
+ ', nume=' + acest.nume;
} }
clasa flux sortat {
public static void main ( Şir [ ] argumente ) {
Listă < Date > list = nou ArrayList < Date > ( ) ;
listă.adăugați ( Date noi ( 2 , 'Harry' ) ) ;
listă.adăugați ( Date noi ( 1 , 'David' ) ) ;
listă.adăugați ( Date noi ( 3 , 'Tom' ) ) ;
Curent < Date > stream = listă.stream ( ) ;
pârâu.sortat ( ( e1, e2 ) - > e1.id - e2.id ) .pentru fiecare ( System.out::println ) ;
} }
În aceste linii de cod, efectuați următorii pași:
- În primul rând, declarați o clasă numită „ Date ”.
- În definiția sa, specificați variabilele menționate.
- În pasul următor, includeți un constructor de clasă parametrizată având parametrii identici cu variabilele specificate.
- În definiția constructorului, faceți referire la variabilele specificate și alocați-le valorile argumentelor transmise prin „ acest ”.
- Acum, anulați „ toString() ” pentru a returna valorile transmise.
- În ' principal() ”, creați o listă a obiectelor clasei și adăugați valorile transmise declarate la listă prin intermediul „ asociat adăuga() ” metoda.
- După aceea, preluați fluxul din listă prin intermediul „ curent() ” metoda.
- De asemenea, aplicați „ sortat() ” metoda cu comparatorul declarat care compară două obiecte pe baza ” id „într-un „ ascendent ' manieră.
- În cele din urmă, aplicați „ pentru fiecare() ” pentru a înregistra fluxul de obiecte sortate pe consolă.
Ieșire
În acest rezultat, se poate analiza că valorile obiectelor sunt sortate corespunzător.
Concluzie
„ Stream.sorted() ” este metoda corespunzătoare “ Curent ” interfață care oferă un flux sortat fără a afecta ordonarea articolelor/elementelor din fluxul original. Această metodă sortează elementele într-un mod implicit, precum și pe baza comparatorului specificat. Acest blog a discutat despre utilizarea și implementarea metodei „Stream.sorted()” în Java.