En ny tilleggspakke i Java 8, kjent som java.util.stream er lagt til for brukerne for en effektiv programmeringsopplevelse. En strøm kan defineres som en sekvens av objekter, som støtter flere metoder. I denne artikkelen vil vi utforske Stream in
Følgende tips vil bli dekket i denne artikkelen,
Før vi begynner med denne artikkelen om Stream In Java, la oss ta en titt på noen viktige funksjoner,
Stream i Java: Funksjoner
- En strøm er ikke en datastruktur og lagrer ikke elementer. Samlinger, arrays eller I / O-kanaler er der det tar innspillene fra.
- Kilden til strømmen forblir uendret etter at operasjoner er utført på den. For eksempel produserer filtrering av en strøm ganske enkelt en ny strøm uten de filtrerte elementene, i stedet for å endre den opprinnelige strømmen.
- Aggregeringsoperasjoner som filter, redusere, matche, finne osv. Støttes av strøm.
- Latskap kan betraktes som et trekk ved strømmen, da den kun vurderer kodene når det er nødvendig.
- Besøk av elementene i strømmen kan bare gjøres en gang i løpet av en strøm. En ny strøm må opprettes for å gå tilbake til de samme elementene som er tilstede i kilden.
Fortsetter med denne artikkelen om Stream i Java
Genererer bekker
Strømmer kan genereres på følgende måter:
- strøm() - En sekvensiell strøm returneres.Samlingregnes som kilden.
- parallelStream () - En parallell strøm returneres. Samling betraktes som kilden.
List strings = Arrays.asList ('Hello', '', 'Hi', 'Hola', 'Bonjour', '', 'Namaste') List filtered = strings.stream (). Filter (string ->! String. isEmpty ()). samle (Collectors.toList ())
Fortsetter med denne artikkelen om Stream i Java
Operasjoner på bekker:
Mellomliggende operasjoner:
kart
Elementene som er tilstede i samlingen kan tilordnes andre objekter i henhold til predikatet som ble gitt som argument. Følgende eksempel brukes til å vise unike firkanter av tallene ved hjelp av kartmetoden.
Liste num = Arrays.asList (5,4,4,2,3,3) List kvadrater = num.stream (). Kart (y -> y * y). Tydelig (). Samle (Collectors.toList ())
filter
Elementer kan fjernes på grunnlag av et kriterium ved hjelp av denne metoden.
List name = Arrays.asList ('Saturday,' Sunday ',' Thursday ') List res = name.stream (). Filter (s-> s.startsWith (' S ')). Collect (Collectors.toList () )
sortert
Strømmen kan sorteres etter denne metoden.
hva er substring i java
List name = Arrays.asList ('Saturday', 'Sunday', 'Thursday') List res = name.stream (). Sorted (). Collect (Collectors.toList ())
Stream i Java: Terminaloperasjoner:
samle inn
Resultatet av behandlingen på elementene i en strøm kan kombineres ved hjelp av samleoperasjonen.
Liste num = Arrays.asList (4,3,2,5,6) Sett res = num.stream (). Kart (y-> y * y) .collect (Collectors.toSet ())
for hver
Denne metoden brukes til å gjenta gjennom hvert element som er tilstede i strømmen.
Liste num = Arrays.asList (4,3,2,5) num.stream (). Kart (x-> x * x) .forEach (y-> System.out.println (y))
redusere
Elementene i strømmen kan reduseres til en enkelt verdi ved å bruke denne metoden.
List num = Arrays.asList (4,3,2,5) int even = num.stream (). Filter (x-> x% 2 == 0) .reduser (0, (res, i) -> res + Jeg)
Variabelen res tildeles innledningsvis verdien 0, og i legges til den.
Fortsetter med denne artikkelen om Stream i Java
Filtrering
Koden kan filtreres ved hjelp av strømmetoden. I det følgende eksemplet blir prisen på instrumentene filtrert ut.
import java.util. * import java.util.stream.Collectors klasse Instrument {int num Strengnavn float price public Instrument (int num, String name, float price) {this.num = num this.name = name this.price = price}} public class Test {public static void main (String [] args) {List instrumentsList = new ArrayList () // Adding Products instrumentsList.add (new Instrument (1, 'Guitar', 15000f)) instrumentsList.add (new Instrument (2, 'Piano', 18000f)) instrumenterListe.add (nytt Instrument (3, 'Fløyte', 15000f)) instrumenterListe.add (nytt Instrument (4, 'Trommer', 48000f)) instrumenterListe.add (nytt Instrument ( 5, 'Ukulele', 32000f)) Liste InstrumentPriceList2 = instrumenterListe.strøm () .filter (p -> p.pris> 30000) // filtreringsdata. Kart (p-> p.pris) // hentepris. Samle ( Collectors.toList ()) // samler som liste System.out.println (InstrumentPriceList2)}}
Produksjon:
[48000.0, 32000.0]
Fortsetter med denne artikkelen om Stream i Java
Iterering:
Iterasjon kan utføres ved å bruke stream in java.
import java.util.stream. * public class Test {public static void main (String [] args) {Stream.iterate (1, element-> element + 1) .filter (element-> element% 4 == 0). limit (6) .forEach (System.out :: println)}}
Produksjon:
4
8
12
16
tjue
hva er en bufferedreader java
24
La oss se på et annet eksempel for å forstå konseptet Stream i Java mer effektivt.
Eksempel:
import java.util. * import java.util.stream. * public class Test {public static void main (String args []) {// opprette en liste over heltall Liste num = Arrays.asList (6,7,8,9 ) // ved hjelp av kartmetode Liste kvadrater = num.stream (). map (y -> y * y). samle (Collectors.toList ()) System.out.println (firkanter) // opprette en liste over strengelengedager = Arrays.asList ('Fredag', 'Lørdag', 'Søndag') // filtermetode Liste res = dager .stream (). filter (s-> s.startsWith ('S')). samle (Collectors.toList ()) System.out.println (res) // sortert metode Listevisning = dager.stream (). sortert (). collect (Collectors.toList ()) System.out.println (display) / / opprette en liste over heltall Liste nummer = Arrays.asList (6,9,5,7,1) // samle metode returnerer et sett Sett sqSet = number.stream (). kart (y-> y * y) .collect (Collectors.toSet ()) System.out.println (sqSet) // forEach method num.stream (). Map (y-> y * y) .forEach (x-> System.out.println (x)) / / reduser metoden int even = num.stream (). filter (x-> x% 2 == 0) .reduser (0, (result, i) -> result + i) System.out.println (even)}}
Produksjon:
[36, 49, 64, 81]
[Lørdag Søndag]
[Fredag Lørdag Søndag]
[81, 49, 1, 36, 25]
36
49
64
81
14
Strømmer gjør det mulig for brukeren å utføre operasjoner på elementene effektivt.
Dermed har vi kommet til en slutt på denne artikkelen om ‘Stream in Java’. Hvis du ønsker å lære mer, kan du sjekke Java Training av Edureka, et pålitelig online læringsfirma. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.
c ++ sortere int-array
Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne bloggen, så kommer vi tilbake til deg så snart som mulig.