Alles wat u moet weten over Stream in Java



Dit artikel laat je kennismaken met Stream in Java, een pakket dat onlangs in Java is geïntroduceerd, en je een gedetailleerde uitleg over wat het kan doen.

Een nieuw aanvullend pakket in Java 8, bekend als java.util.stream is toegevoegd voor de gebruikers voor een efficiënte programmeerervaring. Een stream kan worden gedefinieerd als een reeks objecten, die meerdere methoden ondersteunt. In dit artikel zouden we Stream in verkennen

De volgende punten komen aan bod in dit artikel:





Voordat we aan de slag gaan met dit artikel over Stream In Java, laten we eerst enkele belangrijke functies bekijken,

Stream in Java: functies

  • Een stream is geen datastructuur en slaat geen elementen op. Collecties, arrays of I / O-kanalen is waar het de input vandaan haalt.
  • De bron van de stream blijft ongewijzigd nadat er bewerkingen op zijn uitgevoerd. Als u bijvoorbeeld een stream filtert, produceert u eenvoudig een nieuwe stream zonder de gefilterde elementen, in plaats van de oorspronkelijke stream te wijzigen.
  • Aggregatiebewerkingen zoals filteren, verkleinen, matchen, zoeken, enz. Worden ondersteund door stream.
  • Luiheid kan worden beschouwd als een kenmerk van de stream, omdat het de codes alleen evalueert wanneer dat nodig is.
  • Het bezoeken van de elementen die in de stroom aanwezig zijn, kan slechts één keer tijdens de levensduur van een stroom worden gedaan. Er moet een nieuwe stream worden gemaakt om dezelfde elementen in de bron opnieuw te bezoeken.

Verderop met dit artikel over Stream in Java



Streams genereren

Streams kunnen op de volgende manieren worden gegenereerd:

  • stroom() - Er wordt een opeenvolgende stream geretourneerd.Verzamelingwordt beschouwd als de bron.
  • parallelStream () - Er wordt een parallelle stream geretourneerd. Collectie wordt beschouwd als de bron.
List strings = Arrays.asList ('Hallo', '', 'Hallo', 'Hola', 'Bonjour', '', 'Namaste') Lijst gefilterd = strings.stream (). Filter (string ->! String. isEmpty ()). collect (Collectors.toList ())

Verderop met dit artikel over Stream in Java

Bewerkingen op streams:

Tussenliggende operaties:

kaart



De elementen die in de verzameling aanwezig zijn, kunnen aan andere objecten worden toegewezen volgens het predikaat dat als argument is doorgegeven. Het volgende voorbeeld wordt gebruikt om unieke vierkanten van de getallen weer te geven met behulp van de kaartmethode.

List num = Arrays.asList (5,4,4,2,3,3) List squares = num.stream (). Map (y -> y * y) .distinct (). Collect (Collectors.toList ())

filter

Met deze methode kunnen elementen verwijderd worden op basis van een criterium.

wat is echo in php
Lijstnaam = Arrays.asList ('Zaterdag', 'Zondag', 'Donderdag') Lijst res = naam.stream (). Filter (s-> s.startsWith ('S')). Collect (Collectors.toList () )

gesorteerd

Met deze methode kan de stream worden gesorteerd.

Lijstnaam = Arrays.asList ('Zaterdag', 'Zondag', 'Donderdag') Lijst res = naam.stream (). Gesorteerd (). Collect (Collectors.toList ())

Stream in Java: Terminalbewerkingen:

verzamelen

Het resultaat van verwerking op de elementen van een stroom kan worden gecombineerd door gebruik te maken van de verzamelbewerking.

List num = Arrays.asList (4,3,2,5,6) Stel res = num.stream (). Map (y-> y * y) .collect (Collectors.toSet ())

voor elk

Deze methode wordt gebruikt voor het doorlopen van elk element dat in de stream aanwezig is.

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

verminderen

Met deze methode kunnen de elementen van de stream tot één waarde worden teruggebracht.

List num = Arrays.asList (4,3,2,5) int even = num.stream (). Filter (x-> x% 2 == 0). Reduceren (0, (res, i) -> res + ik)

De variabele res krijgt in eerste instantie de waarde 0, en i wordt eraan toegevoegd.

Verderop met dit artikel over Stream in Java

Filteren

De code kan worden gefilterd met behulp van de stream-methode. In het volgende voorbeeld wordt de prijs van de instrumenten uitgefilterd.

import java.util. * import java.util.stream.Collectors class Instrument {int num String naam float prijs publiek Instrument (int num, String naam, float prijs) {this.num = num this.name = name this.price = price}} public class Test {public static void main (String [] args) {List instrumentsList = new ArrayList () // Producten toevoegen instrumentsList.add (nieuw Instrument (1, 'Guitar', 15000f)) instrumentsList.add (nieuw Instrument (2, 'Piano', 18000f)) instrumentsList.add (nieuw Instrument (3, 'Flute', 15000f)) instrumentsList.add (nieuw Instrument (4, 'Drums', 48000f)) instrumentsList.add (nieuw Instrument ( 5, 'Ukulele', 32000f)) Lijst InstrumentPriceList2 = instrumentenList.stream () .filter (p -> p.price> 30000) // gegevens filteren .map (p-> p.price) // prijs ophalen .collect ( Collectors.toList ()) // verzamelen als lijst System.out.println (InstrumentPriceList2)}}
 Uitgang: 

[48000.0, 32000.0]

Verderop met dit artikel over Stream in Java

Itereren:

Iteratie kan worden uitgevoerd door stream in java te gebruiken.

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)}}

Uitgang:

4

8

12

16

twintig

24

Laten we een ander voorbeeld bekijken om het concept van Stream in Java beter te begrijpen.

Voorbeeld:

import java.util. * import java.util.stream. * public class Test {public static void main (String args []) {// een lijst met gehele getallen maken List num = Arrays.asList (6,7,8,9 ) // met behulp van de kaartmethode Lijstvierkanten = num.stream (). map (y -> y * y). collect (Collectors.toList ()) System.out.println (vierkanten) // een lijst met String List-dagen maken = Arrays.asList ('Friday', 'Saturday', 'Sunday') // filtermethode List res = days .stream (). filter (s-> s.startsWith ('S')). collect (Collectors.toList ()) System.out.println (res) // gesorteerde methode Lijstweergave = dagen.stream (). gesorteerd (). collect (Collectors.toList ()) System.out.println (display) / / een lijst met gehele getallen maken Lijstnummer = Arrays.asList (6,9,5,7,1) // collect-methode retourneert een set Set sqSet = number.stream (). map (y-> y * y). verzamelen (Collectors.toSet ()) System.out.println (sqSet) // forEach methode num.stream (). Map (y-> y * y) .forEach (x-> System.out.println (x)) / / reduce methode int even = num.stream (). filter (x-> x% 2 == 0) .reduce (0, (resultaat, i) -> resultaat + i) System.out.println (even)}}

Uitgang:

[36, 49, 64, 81]

ssis tutorial voor beginners 2012 met voorbeelden

[Zaterdag Zondag]

[Vrijdag zaterdag Zondag]

[81, 49, 1, 36, 25]

36

49

64

81

14

Met streams kan de gebruiker bewerkingen op de elementen effectief uitvoeren.

Hiermee zijn we aan het einde gekomen van dit artikel over ‘Stream in Java’. Als je meer wilt weten, bekijk dan de Java Training van Edureka, een vertrouwd online leerbedrijf. Edureka's Java J2EE- en SOA-trainings- en certificeringscursus is ontworpen om u te trainen in zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze blog en we nemen zo snel mogelijk contact met je op.