Alt hvad du behøver at vide om streaming i Java



Denne artikel introducerer dig til Stream i Java en pakke, der for nylig blev introduceret i Java, og du får en detaljeret forklaring på, hvad den kan gøre.

En ny ekstra pakke i Java 8, kendt som java.util.stream er tilføjet til brugerne til en effektiv programmeringsoplevelse. En strøm kan defineres som en sekvens af objekter, der understøtter flere metoder. I denne artikel vil vi udforske Stream in

Følgende punkter vil blive dækket af denne artikel,





Før vi kommer i gang med denne artikel om Stream i Java, lad os se på nogle vigtige funktioner,

Stream i Java: Funktioner

  • En stream er ikke en datastruktur og gemmer ikke elementer. Samlinger, arrays eller I / O-kanaler er hvor det tager input fra.
  • Strømkilden forbliver uændret, når operationer udføres på den. For eksempel producerer filtrering af en stream simpelthen en ny stream uden de filtrerede elementer i stedet for at ændre den originale stream.
  • Aggregeringshandlinger såsom filter, reducere, matche, finde osv. Understøttes af stream.
  • Dovenskab kan betragtes som et træk ved strømmen, da den kun vurderer koderne, når det er nødvendigt.
  • Besøg af elementerne i strømmen kan kun udføres en gang i løbet af en streams levetid. Der skal oprettes en ny strøm for at genoptage de samme elementer, der findes i kilden.

Fortsætter med denne artikel om Stream i Java



Genererer streams

Streams kan genereres ved hjælp af følgende metoder:

  • strøm() - En sekventiel strøm returneres.Kollektionbetragtes som kilden.
  • parallelStream () - En parallel stream returneres. Samling betragtes som kilden.
List strings = Arrays.asList ('Hello', '', 'Hi', 'Hola', 'Bonjour', '', 'Namaste') List filtered = strings.stream (). Filter (string ->! String. isEmpty ()). indsaml (Collectors.toList ())

Fortsætter med denne artikel om Stream i Java

Operationer på streams:

Mellemliggende operationer:

kort



Elementerne, der er til stede i samlingen, kan kortlægges til andre objekter i henhold til det prædikat, der er givet som argumentet. Følgende eksempel bruges til at vise unikke firkanter af tallene ved hjælp af kortmetoden.

Liste num = Arrays.asList (5,4,4,2,3,3) List kvadrater = num.stream (). Kort (y -> y * y). Tydelig (). Indsamle (Collectors.toList ())

filter

Elementer kan fjernes på baggrund af et kriterium ved hjælp af denne metode.

List name = Arrays.asList ('Saturday', 'Sunday', 'Thursday') List res = name.stream (). Filter (s-> s.startsWith ('S')). Collect (Collectors.toList () )

sorteret

Strømmen kan sorteres ved hjælp af denne metode.

List name = Arrays.asList ('Saturday', 'Sunday', 'Thursday') List res = name.stream (). Sorted (). Collect (Collectors.toList ())

Stream i Java: Terminaloperationer:

indsamle

java hvordan man konverterer dobbelt til int

Resultatet af behandlingen på elementerne i en stream kan kombineres ved hjælp af indsamlingsoperationen.

Liste num = Arrays.asList (4,3,2,5,6) Indstil res = num.stream (). Kort (y-> y * y). Indsamle (Collectors.toSet ())

for hver

Denne metode bruges til at gentage hvert element, der er til stede i strømmen.

Liste num = Arrays.asList (4,3,2,5) num.stream (). Kort (x-> x * x) .forEach (y-> System.out.println (y))

reducere

Elementerne i strømmen kan reduceres til en enkelt værdi ved hjælp af denne metode.

Liste num = Arrays.asList (4,3,2,5) int lige = num.stream (). Filter (x-> x% 2 == 0) .reducer (0, (res, i) -> res + jeg)

Variablen res tildeles oprindeligt værdien 0, og jeg føjes til den.

Fortsætter med denne artikel om Stream i Java

Filtrering

Koden kan filtreres ved hjælp af stream-metoden. I det følgende eksempel filtreres instrumentprisen fra.

import java.util. * import java.util.stream.Collectors klasse Instrument {int num String name 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 (nyt instrument (3, 'Fløjte', 15000f)) instrumenterListe.add (nyt instrument (4, 'Trommer', 48000f)) instrumenterListe.add (nyt instrument ( 5, 'Ukulele', 32000f)) Liste InstrumentPriceList2 = instrumenterListe.strøm () .filter (p -> p.pris> 30000) // filtreringsdata. Kort (p-> p.pris) // hentepris. Indsamle ( Collectors.toList ()) // indsamler som liste System.out.println (InstrumentPriceList2)}}
 Produktion: 

[48000.0, 32000.0]

Fortsætter med denne artikel om Stream i Java

Iterering:

Iteration kan udføres ved hjælp af stream i 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). grænse (6) .forEach (System.out :: println)}}

Produktion:

4

8

12

16

tyve

24

Lad os se på et andet eksempel for at forstå konceptet Stream i java mere effektivt.

Eksempel:

import java.util. * import java.util.stream. * public class Test {public static void main (String args []) {// Oprettelse af en liste med heltal List num = Arrays.asList (6,7,8,9 ) // ved hjælp af kortmetode Liste kvadrater = num.stream (). map (y -> y * y). indsamle (Collectors.toList ()) System.out.println (firkanter) // oprette en liste med strengliste dage = Arrays.asList ('Fredag', 'Lørdag', 'Søndag') // filtermetode Liste res = dage .stream (). filter (s-> s.startsWith ('S')). indsamle (Collectors.toList ()) System.out.println (res) // sorteret metode Listevisning = dage.stream (). sorteret (). collect (Collectors.toList ()) System.out.println (display) / / oprettelse af en liste over heltal Liste nummer = Arrays.asList (6,9,5,7,1) // samle metode returnerer et sæt Set sqSet = number.stream (). kort (y-> y * y) .collect (Collectors.toSet ()) System.out.println (sqSet) // forEach metode num.stream (). Kort (y-> y * y). ForEach (x-> System.out.println (x)) / / reducer metode int lige = num.stream (). filter (x-> x% 2 == 0). reducer (0, (resultat, i) -> resultat + i) System.out.println (lige)}}

Produktion:

[36, 49, 64, 81]

[Lørdag Søndag]

[Fredag, lørdag, søndag]

[81, 49, 1, 36, 25]

36

49

64

81

14

Streams gør det muligt for brugeren at udføre operationer på elementerne effektivt.

java c ++ python

Således er vi nået til slutningen af ​​denne artikel om 'Stream i Java'. Hvis du ønsker at lære mere, skal du tjekke Java Training af Edureka, et betroet online læringsfirma. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til at træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarsektionen på denne blog, og vi vender tilbage til dig hurtigst muligt.