Co je metoda Stream.sorted() v Javě

Co Je Metoda Stream Sorted V Jave



V Javě mohou nastat určité případy, kdy programátor potřebuje seřadit položky v souladu s požadavkem. Například získávání nesetříděných nebo náhodně generovaných hodnot specifickým (vzestupným nebo sestupným) způsobem. V takových situacích se „ Stream.sorted() “ metoda pomáhá efektivně třídit data na konci vývojáře.

Tento článek se bude podrobně zabývat používáním a implementací metody „Stream.sorted()“ v Javě.







Co je metoda „Stream.sorted()“ v Javě?

' Stream.sorted() “ metoda odpovídá “ Proud ' rozhraní. Tato metoda poskytuje setříděný proud bez ovlivnění řazení prvků/položek v původním proudu.



Syntax



Případ 1: Žádný parametr





proud.tříděný ( )

Případ 2: S parametrem



proud.tříděný ( komp )

V této syntaxi „ komp ” označuje komparátor, na základě kterého bude provedeno třídění.

Než přistoupíte k příkladům, nezapomeňte zahrnout následující balíček. Tento balíček obsahuje třídy, rozhraní atd., které umožňují operace ve funkčním stylu s prvky:

importovat java.util.stream. * ;

Příklad 1: Použití metody “Stream.sorted()” k řazení (vzestupně a sestupně) celých čísel v Javě

' Stream.of() ” metoda se používá k vytvoření sekvenčního proudu pro dané prvky. V tomto příkladu lze tuto metodu použít v kombinaci s „ Stream.sorted() ” metoda pro třídění toku celých čísel vzestupně a sestupně:

třída pro veřejnost {
public static void main ( Tětiva [ ] argumenty ) {
Proud < Celé číslo > sortStream1 = Proud ( 2 , 4 , 3 , 5 , 1 ) ;
Proud < Celé číslo > sortStream2 = Proud ( 9 , 6 , 7 , 8 , 10 ) ;
System.out.println ( 'První stream je:' ) ;
sortStream1.tříděno ( ) .pro každého ( System.out::println ) ;
System.out.println ( ' \n Druhý proud je: ' ) ;
sortStream2.tříděno ( ( a, b ) - > b-a ) .pro každého ( System.out::println ) ;
} }

V tomto fragmentu kódu:

  • Vytvořte dva různé celočíselné proudy pomocí „ z() “ metoda.
  • Poté přidružte „ seřazeno() ” metoda s vytvořeným bývalým streamem k seřazení streamu v “ vzestupně ' objednat.
  • Nyní použijte „ seřazeno() ” znovu s druhým proudem pro vrácení proudu v „ klesající “ objednat v souladu s uvedeným srovnávačem, tj. b-a “.
  • Nakonec v obou případech zobrazte na konzole seřazený datový proud celých čísel.

Výstup

V tomto výstupu lze pozorovat, že oba proudy jsou podle toho seřazeny.

Než přejdete k dalšímu příkladu, zahrňte níže uvedený příklad, abyste získali přístup ke všem třídám a metodám:

import java.util. * ;

Příklad 2: Použití metody “Stream.sorted()” k řazení objektů třídy

V tomto konkrétním příkladu lze diskutovanou metodu implementovat na objektech třídy pro třídění předávaných hodnot:

třída Data {
int id ;
Název řetězce;
Data ( int id ,Název řetězce ) {
this.id = id ;
this.name = jméno;
}
public String toString ( ) {
vrátit se 'id=' + toto.id
+ ', jméno=' + toto.jméno;
} }
třída streamsorted {
public static void main ( Tětiva [ ] argumenty ) {
Seznam < Data > seznam = nový ArrayList < Data > ( ) ;
seznam.přidat ( nové údaje ( 2 , 'Harry' ) ) ;
seznam.přidat ( nové údaje ( 1 , 'David' ) ) ;
seznam.přidat ( nové údaje ( 3 , 'tomu' ) ) ;
Proud < Data > stream = seznam.stream ( ) ;
proud.tříděný ( ( e1, e2 ) - > e1.id – e2.id ) .pro každého ( System.out::println ) ;
} }

V těchto řádcích kódu proveďte následující kroky:

  • Nejprve deklarujte třídu s názvem „ Data “.
  • V jeho definici specifikujte uvedené proměnné.
  • V dalším kroku zahrňte parametrizovaný konstruktor třídy s parametry shodnými se zadanými proměnnými.
  • V definici konstruktoru odkazujte na zadané proměnné a přidělte jim předané hodnoty argumentů pomocí „ tento “.
  • Nyní přepište „ toString() ” metoda pro vrácení předaných hodnot.
  • V ' hlavní() “, vytvořte seznam objektů třídy a přidejte uvedené předané hodnoty do seznamu pomocí přidruženého “ přidat() “ metoda.
  • Poté načtěte stream ze seznamu pomocí „ proud() “ metoda.
  • Aplikujte také „ seřazeno() “ metoda s uvedeným komparátorem, která porovnává dva objekty na základě “ id “ v “ vzestupně “způsobem.
  • Nakonec použijte „ pro každého() ” pro protokolování streamu setříděných objektů na konzole.

Výstup

V tomto výsledku lze analyzovat, že hodnoty objektů jsou vhodně seřazeny.

Závěr

' Stream.sorted() “ je metoda odpovídající „ Proud ” rozhraní, které poskytuje setříděný stream bez ovlivnění řazení položek/prvků v původním streamu. Tato metoda třídí prvky výchozím způsobem a také na základě zadaného komparátoru. Tento blog pojednával o použití a implementaci metody “Stream.sorted()” v Javě.