logo

Straumējiet Java valodā

Programmā Java 8 ieviestā Stream API tiek izmantota objektu kolekciju apstrādei. Java straume ir objektu secība, kas atbalsta dažādas metodes, kuras var konveijezēt, lai iegūtu vēlamo rezultātu.

Straumes izmantošana Java

Tālāk ir minēti straumes lietojumi Java valodā:

  1. Straumes API ir veids, kā izteikt un apstrādāt objektu kolekcijas.
  2. Ļaujiet mums veikt tādas darbības kā filtrēšana, kartēšana, samazināšana un kārtošana.

Kā izveidot Java straumi?

Java straumes izveide ir viens no visvienkāršākajiem soļiem pirms Java Stream funkcionalitātes apsvēršanas. Zemāk ir norādīta sintakse, kā deklarēt Java straumi.



Sintakse

Stream stream;>

Šeit T ir klase, objekts vai datu tips atkarībā no deklarācijas.

Java straumes līdzekļi

Java straumes funkcijas ir minētas tālāk:

  • Straume nav datu struktūra, tā ņem ievadi no kolekcijām, masīviem vai I/O kanāliem.
  • Straumes nemaina sākotnējo datu struktūru, tās tikai nodrošina rezultātu atbilstoši konveijera metodēm.
  • Katra starpdarbība tiek slinki izpildīta un rezultātā tiek atgriezta straume, līdz ar to dažādas starpdarbības var tikt konveijerātas. Termināļa darbības iezīmē straumes beigas un atgriež rezultātu.

Dažādas darbības straumēs

Straumēs ir divu veidu darbības:

q4 mēneši
  1. Starpposma operācijas
  2. Pārtraukt operācijas

Starpposma operācijas

java straumes operācijas

Starpposma operācijas ir operāciju veidi, kuros vairākas metodes ir sasaistītas pēc kārtas.

avl koks

Starpposma darbību raksturojums

  1. Metodes ir savienotas kopā.
  2. Starpposma darbības pārveido straumi citā straumē.
  3. Tas nodrošina filtrēšanas koncepciju, kad viena metode filtrē datus un pēc apstrādes nodod to citai metodei.

Java Stream priekšrocības

Ir dažas priekšrocības, kuru dēļ mēs izmantojam straumi Java, kā minēts tālāk:

  • Nav krātuves
  • Funkciju cauruļvads
  • Slinkums
  • Var būt bezgalīgs
  • Var paralēlizēt
  • Var izveidot no kolekcijām, masīviem, failu rindām, metodēm straumē, IntStream utt.

Svarīgas starpposma darbības

Tālāk ir minētas dažas starpposma darbības:

1. karte()

Kartes metode tiek izmantota, lai atgrieztu straumi, kas sastāv no dotās funkcijas piemērošanas rezultātiem šīs straumes elementiem.

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

2. filtrs()

Filtra metode tiek izmantota, lai atlasītu elementus atbilstoši predikātam, kas nodots kā arguments.

List names = Arrays.asList('Reflection','Collection','Stream'); List result = names.stream().filter(s->s.startsWith('S')).collect(Collectors.toList());>

3. sakārtots()

Straumes kārtošanai tiek izmantota šķirošanas metode.

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

Termināļa darbības

Termināļa darbības ir operāciju veids, kas atgriež rezultātu. Šīs darbības netiek tālāk apstrādātas, tikai atgriež gala rezultāta vērtību.

Svarīgas termināļa darbības

Tālāk ir minētas dažas termināļa darbības:

1. savākt()

Savākšanas metode tiek izmantota, lai atgrieztu straumē veikto starpoperāciju rezultātu.

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

2. katram()

ForEach metode tiek izmantota, lai atkārtotu katru straumes elementu.

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

3. samazināt ()

Samazināšanas metode tiek izmantota, lai samazinātu straumes elementus līdz vienai vērtībai. Samazināšanas metode izmanto BinaryOperator kā parametru.

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

Šeit ans mainīgajam tiek piešķirta 0 kā sākotnējā vērtība, un tam tiek pievienots i.

Piezīme: Starpposma operācijas darbojas, pamatojoties uz slinkās novērtēšanas koncepciju, kas nodrošina, ka katra metode atgriež fiksētu vērtību (termināla darbība) pirms pārejas uz nākamo metodi.

Java Stream piemērs

Java

kas ir java kaudze




// 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 %>>==>0>)> >.reduce(>0>, (ans, i) ->ans + i);> >System.out.println(even);> >}> }>

atsauces datu tipi java

>

>

Izvade

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

Svarīgi punkti/novērojumi par Java straumi

  1. Straume sastāv no avota, kam seko nulles vai vairākas starpmetodes, kas apvienotas kopā (konveijera) un termināla metode, lai apstrādātu no avota iegūtos objektus saskaņā ar aprakstītajām metodēm.
  2. Straume tiek izmantota, lai aprēķinātu elementus atbilstoši konveijera metodēm, nemainot objekta sākotnējo vērtību.