V jazyku Java môžu nastať určité prípady, keď programátor potrebuje zoradiť položky v súlade s požiadavkou. Napríklad získavanie netriedených alebo náhodne generovaných hodnôt špecifickým (vzostupným alebo zostupným) spôsobom. V takýchto situáciách „ Stream.sorted() “ pomáha efektívne triediť údaje na konci vývojára.
Tento článok sa bude zaoberať používaním a implementáciou metódy „Stream.sorted()“ v jazyku Java.
Čo je metóda „Stream.sorted()“ v jazyku Java?
' Stream.sorted() “metóda zodpovedá “ Prúd ' rozhranie. Táto metóda poskytuje triedený tok bez ovplyvnenia poradia prvkov/položiek v pôvodnom toku.
Syntax
Prípad 1: Žiadny parameter
prúd.triedený ( )
Prípad 2: S parametrom
prúd.triedený ( komp )
V tejto syntaxi „ komp “ označuje porovnávač, na základe ktorého sa bude triediť.
Pred pokračovaním v príkladoch nezabudnite zahrnúť nasledujúci balík. Tento balík obsahuje triedy, rozhrania atď., ktoré umožňujú operácie vo funkčnom štýle s prvkami:
importovať java.util.stream. * ;
Príklad 1: Použitie metódy „Stream.sorted()“ na triedenie (vzostupne a zostupne) celých čísel v jazyku Java
' Stream.of() ” metóda sa používa na vytvorenie sekvenčného toku pre dané prvky. V tomto príklade možno túto metódu použiť v kombinácii s „ Stream.sorted() ” metóda na triedenie toku celých čísel vzostupne a zostupne:
verejná trieda triedená {verejné statické void main ( Reťazec [ ] args ) {
Prúd < Celé číslo > sortStream1 = Prúd ( 2 , 4 , 3 , 5 , 1 ) ;
Prúd < Celé číslo > sortStream2 = Tok ( 9 , 6 , 7 , 8 , 10 ) ;
System.out.println ( 'Prvý stream je:' ) ;
sortStream1.triedený ( ) .pre každý ( System.out::println ) ;
System.out.println ( ' \n Druhý prúd je: ' ) ;
sortStream2.triedený ( ( a, b ) - > b-a ) .pre každý ( System.out::println ) ;
} }
V tomto útržku kódu:
- Vytvorte dva rôzne celočíselné toky prostredníctvom „ z () “.
- Potom priraďte „ zoradené () ” s vytvoreným bývalým tokom na zoradenie toku v “ vzostupne ' objednať.
- Teraz použite „ zoradené () ” znova s druhým tokom, aby sa tok vrátil do “ zostupne “objednajte v súlade s uvedeným porovnávačom, t.j. b-a “.
- Nakoniec v oboch prípadoch zobrazte na konzole zoradený prúd celých čísel.
Výkon
V tomto výstupe je možné pozorovať, že oba prúdy sú podľa toho zoradené.
Pred prechodom na ďalší príklad zahrňte nižšie uvedený príklad, aby ste získali prístup ku všetkým triedam a metódam:
importovať java.util. * ;
Príklad 2: Aplikácia metódy “Stream.sorted()” na triedenie objektov triedy
V tomto konkrétnom príklade môže byť diskutovaná metóda implementovaná na objektoch triedy na triedenie odovzdaných hodnôt:
trieda Údaje {int id ;
Názov reťazca;
Údaje ( int id ,Názov reťazca ) {
this.id = id ;
this.name = meno;
}
public String toString ( ) {
vrátiť 'id=' + toto.id
+ ', meno=' + toto.meno;
} }
trieda streamsorted {
public static void main ( Reťazec [ ] args ) {
Zoznam < Údaje > zoznam = nový ArrayList < Údaje > ( ) ;
zoznam.pridať ( nové údaje ( 2 , 'Harry' ) ) ;
zoznam.pridať ( nové údaje ( 1 , 'David' ) ) ;
zoznam.pridať ( nové údaje ( 3 , 'Tom' ) ) ;
Prúd < Údaje > stream = zoznam.stream ( ) ;
prúd.triedený ( ( e1, e2 ) - > e1.id – e2.id ) .pre každý ( System.out::println ) ;
} }
V týchto riadkoch kódu vykonajte nasledujúce kroky:
- Najprv deklarujte triedu s názvom „ Údaje “.
- V jeho definícii špecifikujte uvedené premenné.
- V ďalšom kroku zahrňte parametrizovaný konštruktor triedy s parametrami identickými so špecifikovanými premennými.
- V definícii konštruktora sa obráťte na zadané premenné a prideľte im odovzdané hodnoty argumentov pomocou „ toto “.
- Teraz prepíšte „ natiahnuť() ” na vrátenie odovzdaných hodnôt.
- V ' Hlavná() “, vytvorte zoznam objektov triedy a pridajte uvedené odovzdané hodnoty do zoznamu pomocou pridruženého „ pridať () “.
- Potom načítajte stream zo zoznamu cez „ Prúd() “.
- Tiež použite „ zoradené () “ metóda s uvedeným komparátorom, ktorý porovnáva dva objekty na základe „ id “ v “ vzostupne “spôsobom.
- Nakoniec použite „ pre každý() ” na protokolovanie streamu triedených objektov na konzole.
Výkon
V tomto výsledku je možné analyzovať, že hodnoty objektu sú vhodne zoradené.
Záver
' Stream.sorted() “ je metóda zodpovedajúca „ Prúd ” rozhranie, ktoré poskytuje triedený stream bez ovplyvnenia poradia položiek/prvkov v pôvodnom streame. Táto metóda triedi prvky predvoleným spôsobom, ako aj na základe zadaného komparátora. Tento blog diskutoval o používaní a implementácii metódy „Stream.sorted()“ v jazyku Java.