logo

Stream i Java

Stream API, introdusert i Java 8, brukes til å behandle samlinger av objekter. En strøm i Java er en sekvens av objekter som støtter ulike metoder som kan pipelineres for å produsere ønsket resultat.

Bruk av Stream i Java

Bruken av Stream i Java er nevnt nedenfor:

  1. Stream API er en måte å uttrykke og behandle samlinger av objekter på.
  2. Gjør det mulig for oss å utføre operasjoner som filtrering, kartlegging, reduksjon og sortering.

Hvordan lage Java Stream?

Java Stream Creation er et av de mest grunnleggende trinnene før du vurderer funksjonene til Java Stream. Nedenfor er syntaksen gitt for hvordan du deklarerer Java Stream.



Syntaks

Stream stream;>

Her er T enten en klasse, et objekt eller en datatype avhengig av erklæringen.

Java Stream-funksjoner

Funksjonene til Java stream er nevnt nedenfor:

  • En strøm er ikke en datastruktur, i stedet tar den input fra samlingene, matrisene eller I/O-kanalene.
  • Strømmer endrer ikke den opprinnelige datastrukturen, de gir bare resultatet i henhold til pipelinemetodene.
  • Hver mellomoperasjon utføres dovent og returnerer en strøm som et resultat, og derfor kan forskjellige mellomoperasjoner bli pipelinet. Terminaloperasjoner markerer slutten på strømmen og returnerer resultatet.

Ulike operasjoner på strømmer

Det er to typer operasjoner i strømmer:

støpt inn til streng
  1. Mellomliggende operasjoner
  2. Avslutte driften

Mellomliggende operasjoner

java stream operasjoner

Mellomliggende operasjoner er typene operasjoner der flere metoder er lenket etter hverandre.

java matematikk tilfeldig

Kjennetegn på mellomoperasjoner

  1. Metoder er lenket sammen.
  2. Mellomoperasjoner forvandler en bekk til en annen strøm.
  3. Det muliggjør konseptet med filtrering der én metode filtrerer data og sender dem til en annen metode etter behandling.

Fordelen med Java Stream

Det er noen fordeler som vi bruker Stream i Java som nevnt nedenfor:

  • Ingen lagring
  • Pipeline av funksjoner
  • Latskap
  • Kan være uendelig
  • Kan parallelliseres
  • Kan lages fra samlinger, arrays, fillinjer, metoder i strøm, IntStream etc.

Viktige mellomoperasjoner

Det er noen få mellomoperasjoner nevnt nedenfor:

1. kart()

Kartmetoden brukes til å returnere en strøm som består av resultatene av å bruke den gitte funksjonen på elementene i denne strømmen.

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

2. filter()

Filtermetoden brukes til å velge elementer i henhold til predikatet som ble sendt som argument.

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

3. sortert()

Den sorterte metoden brukes til å sortere strømmen.

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

Terminaldrift

Terminaloperasjoner er typen operasjoner som returnerer resultatet. Disse operasjonene behandles ikke videre, bare returnerer en endelig resultatverdi.

hva er en java stack

Viktige terminaloperasjoner

Det er noen få terminaloperasjoner nevnt nedenfor:

1. samle()

Samlemetoden brukes til å returnere resultatet av mellomoperasjonene utført på strømmen.

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

2. forHver()

ForEach-metoden brukes til å iterere gjennom hvert element i strømmen.

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

3. redusere()

Reduseringsmetoden brukes til å redusere elementene i en strøm til en enkelt verdi. Reduseringsmetoden tar en BinaryOperator som parameter.

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

Her er ans variabel tildelt 0 som startverdi og i legges til den.

Merk: Intermediate Operations kjører basert på konseptet Lazy Evaluation, som sikrer at hver metode returnerer en fast verdi (Terminal-operasjon) før du går videre til neste metode.

Eksempel på Java Stream

Java


objekt for array i java



datoformat.format java
// 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);> >}> }>

>

>

Produksjon

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

Viktige poeng/observasjoner av Java Stream

  1. En strøm består av en kilde etterfulgt av null eller flere mellommetoder kombinert sammen (pipelined) og en terminalmetode for å behandle objektene hentet fra kilden i henhold til metodene beskrevet.
  2. Stream brukes til å beregne elementer i henhold til pipelinemetodene uten å endre den opprinnelige verdien til objektet.