logo

Strumień w Javie

Wprowadzony w Javie 8 Stream API służy do przetwarzania kolekcji obiektów. Strumień w Javie to sekwencja obiektów obsługująca różne metody, które można potokować w celu uzyskania pożądanego rezultatu.

Użycie strumienia w Javie

Poniżej wymieniono zastosowania Stream w Javie:

  1. Stream API to sposób wyrażania i przetwarzania kolekcji obiektów.
  2. Umożliwiają nam wykonywanie operacji takich jak filtrowanie, mapowanie, redukcja i sortowanie.

Jak utworzyć strumień Java?

Tworzenie strumienia Java jest jednym z najbardziej podstawowych kroków przed rozważeniem funkcjonalności strumienia Java. Poniżej znajduje się składnia deklarowania strumienia Java.



Składnia

Stream stream;>

Tutaj T jest klasą, obiektem lub typem danych, w zależności od deklaracji.

Funkcje strumienia Java

Funkcje strumienia Java są wymienione poniżej:

  • Strumień nie jest strukturą danych, zamiast tego pobiera dane wejściowe z kolekcji, tablic lub kanałów we/wy.
  • Strumienie nie zmieniają oryginalnej struktury danych, dostarczają jedynie wynik zgodnie z metodami potokowymi.
  • Każda operacja pośrednia jest wykonywana leniwie i w rezultacie zwraca strumień, dlatego można potokować różne operacje pośrednie. Operacje terminalowe oznaczają koniec strumienia i zwracają wynik.

Różne operacje na strumieniach

Istnieją dwa typy operacji na strumieniach:

  1. Operacje pośrednie
  2. Zakończ operacje

Operacje pośrednie

operacje na strumieniu Java

Operacje pośrednie to typy operacji, w których wiele metod jest połączonych w rzędzie.

Charakterystyka operacji pośrednich

  1. Metody są ze sobą powiązane.
  2. Operacje pośrednie przekształcają strumień w inny strumień.
  3. Umożliwia koncepcję filtrowania, w której jedna metoda filtruje dane i po przetworzeniu przekazuje je innej metodzie.

Korzyści ze strumienia Java

Istnieją pewne korzyści, z powodu których używamy Stream w Javie, jak wspomniano poniżej:

  • Nie przechowywać
  • Potok funkcji
  • Lenistwo
  • Może być nieskończony
  • Można pracować równolegle
  • Można je tworzyć z kolekcji, tablic, linii plików, metod w strumieniu, IntStream itp.

Ważne operacje pośrednie

Poniżej wymieniono kilka operacji pośrednich:

1. mapa()

Metoda map służy do zwrócenia strumienia składającego się z wyników zastosowania danej funkcji do elementów tego strumienia.

List number = Arrays.asList(2,3,4,5); List square = number.stream().map(x->x*x).collect(Collectors.toList());>

2. filtr()

Metoda filter służy do wybierania elementów zgodnie z predykatem przekazanym jako argument.

c++ konwertuje na ciąg
List names = Arrays.asList('Reflection','Collection','Stream'); List result = names.stream().filter(s->s.startsWith('S')).collect(Collectors.toList());>

3. posortowane()

Do sortowania strumienia używana jest metoda sorted.

List names = Arrays.asList('Reflection','Collection','Stream'); List result = names.stream().sorted().collect(Collectors.toList());>

Operacje terminalowe

Operacje terminalowe to typ operacji, które zwracają wynik. Operacje te nie są dalej przetwarzane, po prostu zwracają końcową wartość wyniku.

Ważne operacje terminalowe

Poniżej wymieniono kilka operacji terminalowych:

1. zbieraj()

Metoda zbierania służy do zwrócenia wyniku operacji pośrednich wykonanych na strumieniu.

List number = Arrays.asList(2,3,4,5,3); Set square = number.stream().map(x->x*x).collect(Collectors.toSet());>

2. dla każdego()

Metoda forEach służy do iteracji po każdym elemencie strumienia.

List number = Arrays.asList(2,3,4,5); number.stream().map(x->x*x).forEach(y->System.out.println(y));>

3. zmniejsz()

Metoda redukcji służy do redukcji elementów strumienia do pojedynczej wartości. Metoda redukcji przyjmuje jako parametr BinaryOperator.

List number = Arrays.asList(2,3,4,5); int even = number.stream().filter(x->x%2==0).reduce(0,(ans,i)->odpowiedzi+i);>

Tutaj zmiennej przypisuje się wartość początkową 0 i dodaje się do niej i.

Notatka: Operacje pośrednie działają w oparciu o koncepcję leniwej oceny, która zapewnia, że ​​każda metoda zwraca stałą wartość (operacja terminalowa) przed przejściem do następnej metody.

Przykład strumienia Java

Jawa




// Java program to demonstrate> // the use of stream in java> import> java.util.*;> import> java.util.stream.*;> class> Demo {> >public> static> void> main(String args[])> >{> >// create a list of integers> >List number = Arrays.asList(>2>,>3>,>4>,>5>);> >// demonstration of map method> >List square> >= number.stream()> >.map(x ->x * x)> >.collect(Collectors.toList());> >// create a list of String> >List names = Arrays.asList(> >'Reflection'>,>'Collection'>,>'Stream'>);> >// demonstration of filter method> >List result> >= names.stream()> >.filter(s ->s.startsWith(>'S'>))> >.collect(Collectors.toList());> > >System.out.println(result);> >// demonstration of sorted method> >List show> >= names.stream()> >.sorted()> >.collect(Collectors.toList());> > >System.out.println(show);> >// create a list of integers> >List numbers> >= Arrays.asList(>2>,>3>,>4>,>5>,>2>);> >// collect method returns a set> >Set squareSet> >= numbers.stream()> >.map(x ->x * x)> >.collect(Collectors.toSet());> > >System.out.println(squareSet);> >// demonstration of forEach method> >number.stream()> >.map(x ->x * x)> >.forEach(y ->System.out.println(y));> >// demonstration of reduce method> >int> even> >= number.stream()> >.filter(x ->x%>2> ==>0>)> >.reduce(>0>, (ans, i) ->ans + i);> >System.out.println(even);> >}> }>

>

>

pobierz film z YouTube'a za pomocą VLC

Wyjście

[4, 9, 16, 25] [Stream] [Collection, Reflection, Stream] [16, 4, 9, 25] 4 9 16 25 6>

Ważne punkty/obserwacje dotyczące strumienia Java

  1. Strumień składa się ze źródła, po którym następuje zero lub więcej metod pośrednich połączonych razem (potokowo) oraz metoda końcowa służąca do przetwarzania obiektów uzyskanych ze źródła zgodnie z opisanymi metodami.
  2. Strumień służy do obliczania elementów zgodnie z metodami potokowymi bez zmiany oryginalnej wartości obiektu.