W Javie mogą wystąpić sytuacje, w których programista musi posortować wpisy zgodnie z wymaganiami. Na przykład pobieranie nieposortowanych lub losowo wygenerowanych wartości w określony sposób (rosnąco lub malejąco). W takich sytuacjach „ posortowane strumieniowo() ” pomaga skutecznie sortować dane po stronie dewelopera.
W tym artykule omówimy użycie i implementację metody „Stream.sorted()” w Javie.
Czym jest metoda „Stream.sorted()” w Javie?
„ posortowane strumieniowo() ” odpowiada metodzie „ Strumień ' interfejs. Ta metoda zapewnia posortowany strumień bez wpływu na kolejność elementów/przedmiotów w oryginalnym strumieniu.
Składnia
Przypadek 1: Brak parametru
strumień.posortowany ( )
Przypadek 2: Z parametrem
strumień.posortowany ( komp )
W tej składni „ komp ” odnosi się do komparatora, na podstawie którego zostanie wykonane sortowanie.
Zanim przejdziesz do przykładów, pamiętaj o dołączeniu następującego pakietu. Ten pakiet zawiera klasy, interfejsy itp., aby umożliwić funkcjonalne operacje na elementach:
zaimportuj java.util.stream. * ;
Przykład 1: Zastosowanie metody „Stream.sorted()” do sortowania (rosnąco i malejąco) liczb całkowitych w Javie
„ Strumień() ” służy do tworzenia sekwencyjnego strumienia dla danych elementów. W tym przykładzie tę metodę można zastosować w połączeniu z „ posortowane strumieniowo() ” metoda sortowania strumienia liczb całkowitych w sposób rosnący i malejący:
klasa publiczna posortowana {public static void main ( Strunowy [ ] argumenty ) {
Strumień < Liczba całkowita > sortStream1 = Strumień.of ( 2 , 4 , 3 , 5 , 1 ) ;
Strumień < Liczba całkowita > sortStream2 = Strumień.of ( 9 , 6 , 7 , 8 , 10 ) ;
System.out.println ( „Pierwszy strumień to:” ) ;
sortStream1.sorted ( ) .dla każdego ( System.out::println ) ;
System.out.println ( ' \N Drugi strumień to: „ ) ;
sortStream2.sorted ( ( a, b ) - > b-a ) .dla każdego ( System.out::println ) ;
} }
W tym fragmencie kodu:
- Utwórz dwa różne strumienie liczb całkowitych za pomocą „ z() ' metoda.
- Następnie skojarz „ posortowane() ” z utworzonym poprzednim strumieniem, aby posortować strumień w „ rosnąco ' zamówienie.
- Teraz zastosuj „ posortowane() ” ponownie z tym ostatnim strumieniem, aby zwrócić strumień w „ malejąco ” zamów zgodnie z podanym komparatorem, tj. „ b-a ”.
- Na koniec wyświetl posortowany strumień liczb całkowitych w obu przypadkach na konsoli.
Wyjście
Na tym wyjściu można zauważyć, że oba strumienie są odpowiednio posortowane.
Zanim przejdziesz do następnego przykładu, dołącz poniższy przykład, aby uzyskać dostęp do wszystkich klas i metod:
zaimportuj java.util. * ;
Przykład 2: Zastosowanie metody „Stream.sorted()” do sortowania obiektów klasy
W tym konkretnym przykładzie omawianą metodę można zaimplementować na obiektach klasy, aby posortować przekazane wartości:
klasa Dane {int ID ;
Nazwa ciągu;
Dane ( int ID ,Nazwa ciągu ) {
this.id = ID ;
to.nazwa = nazwa;
}
publiczny ciąg do ciągu ( ) {
powrót 'identyfikator=' + this.id
+ ', nazwa=' + to.nazwa;
} }
klasa posortowana strumieniowo {
public static void main ( Strunowy [ ] argumenty ) {
Lista < Dane > lista = nowa lista tablic < Dane > ( ) ;
lista.dodaj ( nowe dane ( 2 , 'Złupić' ) ) ;
lista.dodaj ( nowe dane ( 1 , „Dawid” ) ) ;
lista.dodaj ( nowe dane ( 3 , 'Tomek' ) ) ;
Strumień < Dane > strumień = lista.strumień ( ) ;
strumień.posortowany ( ( e1, e2 ) - > e1.id - e2.id ) .dla każdego ( System.out::println ) ;
} }
W tych wierszach kodu wykonaj następujące kroki:
- Najpierw zadeklaruj klasę o nazwie „ Dane ”.
- W jego definicji określ podane zmienne.
- W kolejnym kroku dołącz sparametryzowany konstruktor klasy mający parametry identyczne z podanymi zmiennymi.
- W definicji konstruktora odwołaj się do określonych zmiennych i przydziel im przekazane wartości argumentów za pomocą „ Ten ”.
- Teraz zastąp „ toString() ”, aby zwrócić przekazane wartości.
- W ' główny() ”, utwórz listę obiektów klasy i dodaj podane przekazane wartości do listy za pomocą powiązanego „ dodać() ' metoda.
- Następnie pobierz strumień z listy za pomocą „ strumień() ' metoda.
- Zastosuj również „ posortowane() ” z podanym komparatorem, który porównuje dwa obiekty na podstawie „ ID ” w „ rosnąco sposób.
- Na koniec zastosuj „ dla każdego() ” do rejestrowania strumienia posortowanych obiektów na konsoli.
Wyjście
W tym wyniku można przeanalizować, czy wartości obiektów są odpowiednio posortowane.
Wniosek
„ posortowane strumieniowo() ” jest metodą odpowiadającą „ Strumień ”, który daje posortowany strumień bez wpływu na kolejność elementów/elementów w oryginalnym strumieniu. Metoda ta sortuje elementy w sposób domyślny oraz na podstawie podanego komparatora. W tym blogu omówiono użycie i implementację metody „Stream.sorted()” w Javie.