Allt du behöver veta om ström i Java



Den här artikeln presenterar dig för Stream i Java ett paket som nyligen introducerats i Java och en detaljerad förklaring om vad den kan göra.

Ett nytt tilläggspaket i Java 8, känt som java.util.stream har lagts till för användarna för en effektiv programmeringsupplevelse. En ström kan definieras som en sekvens av objekt som stöder flera metoder. I den här artikeln skulle vi utforska Stream in

Följande tips kommer att behandlas i denna artikel,





Innan vi börjar med den här artikeln om Stream In Java, låt oss ta en titt på några viktiga funktioner,

Stream i Java: Funktioner

  • En ström är inte en datastruktur och lagrar inte element. Samlingar, matriser eller I / O-kanaler är där det tar inmatningen.
  • Källan till strömmen förblir omodifierad efter att operationer har utförts på den. Till exempel, att filtrera en ström producerar helt enkelt en ny ström utan de filtrerade elementen, istället för att ändra den ursprungliga strömmen.
  • Aggregeringsåtgärder som att filtrera, minska, matcha, hitta osv stöds av ström.
  • Laziness kan betraktas som en funktion i strömmen, eftersom den endast utvärderar koder när det krävs.
  • Besök av elementen som finns i strömmen kan bara göras en gång under livets gång. En ny ström måste skapas för att återgå till samma element som finns i källan.

Fortsätter med den här artikeln om Stream i Java



Generera strömmar

Strömmar kan genereras med följande metoder:

  • ström() - En sekventiell ström returneras.Samlinganses vara källan.
  • parallelStream () - En parallell ström returneras. Samling anses vara källan.
Liststrängar = Arrays.asList ('Hej', '', 'Hej', 'Hola', 'Bonjour', '', 'Namaste') Lista filtrerad = strings.stream (). Filter (sträng ->! Sträng. isEmpty ()). samla (Collectors.toList ())

Fortsätter med den här artikeln om Stream i Java

Operationer på strömmar:

Mellanliggande operationer:

Karta



Elementen som finns i samlingen kan mappas till andra objekt enligt det predikat som skickats som argument. Följande exempel används för att visa unika kvadrater av siffrorna med hjälp av kartmetoden.

List num = Arrays.asList (5,4,4,2,3,3) List kvadrater = num.stream (). Karta (y -> y * y). Distinkt (). Samla (Collectors.toList ())

filtrera

Element kan tas bort utifrån ett kriterium med den här metoden.

Listnamn = Arrays.asList ('lördag', 'söndag', 'torsdag') lista res = name.stream (). Filter (s-> s.startsWith ('S')). Samla (Collectors.toList () )

sorterad

Strömmen kan sorteras med den här metoden.

Listnamn = Arrays.asList ('lördag', 'söndag', 'torsdag') lista res = name.stream (). Sorterad (). Samla (Collectors.toList ())

Stream i Java: Terminaloperationer:

samla

Resultatet av bearbetning på elementen i en ström kan kombineras med hjälp av samlingsoperationen.

List num = Arrays.asList (4,3,2,5,6) Ställ in res = num.stream (). Karta (y-> y * y). Samla (Collectors.toSet ())

för varje

Denna metod används för att itera igenom alla element som finns i strömmen.

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

minska

Elementen i strömmen kan reduceras till ett enda värde med hjälp av denna metod.

Lista num = Arrays.asList (4,3,2,5) int jämnt = num.stream (). Filter (x-> x% 2 == 0). Reducera (0, (res, i) -> res + i)

Variabeln res tilldelas initialt värdet 0 och i läggs till det.

Fortsätter med den här artikeln om Stream i Java

Filtrering

Koden kan filtreras med strömmetoden. I följande exempel filtreras instrumentets pris bort.

importera java.util. * importera java.util.stream.Collectors-klass Instrument {int num Strängnamn floatpris offentligt Instrument (int num, Strängnamn, floatpris) {this.num = num this.name = namn 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)) instrumentList.add (nytt Instrument (3, 'Flöjt', 15000f)) instrumentList.add (nytt Instrument (4, 'Trummor', 48000f)) instrumentList.add (nytt Instrument ( 5, 'Ukulele', 32000f)) List InstrumentPriceList2 = instrumentsList.stream () .filter (p -> p.pris> 30000) // filtreringsdata .map (p-> p.pris) // hämtningspris .collect ( Collectors.toList ()) // samlar som lista System.out.println (InstrumentPriceList2)}}
 Produktion: 

[48000.0, 32000.0]

Fortsätter med den här artikeln om Stream i Java

Iterering:

Iteration kan utföras med hjälp av stream in java.

importera java.util.stream. * public class Test {public static void main (String [] args) {Stream.iterate (1, element-> element + 1) .filter (element-> element% 4 == 0). gräns (6) .forEach (System.out :: println)}}

Produktion:

4

8

hur man använder trim i java

12

16

tjugo

24

Låt oss titta på ett annat exempel för att förstå begreppet Stream i Java mer effektivt.

Exempel:

importera java.util. * importera java.util.stream. * public class Test {public static void main (String args []) {// skapa en lista med heltal List num = Arrays.asList (6,7,8,9 ) // med hjälp av kartmetoden Lista rutor = num.stream (). karta (y -> y * y). samla (Collectors.toList ()) System.out.println (rutor) // skapa en lista med stränglistadagar = Arrays.asList ('Fredag', 'Lördag', 'Söndag') // filtermetod Lista res = dagar .stream (). filter (s-> s.startsWith ('S')). samla (Collectors.toList ()) System.out.println (res) // sorterad metod Listdisplay = dagar.stream (). sorterad (). samla (Collectors.toList ()) System.out.println (display) / / skapa en lista med heltal Listnummer = Arrays.asList (6,9,5,7,1) // samlingsmetod returnerar en uppsättning Ställ in sqSet = number.stream (). karta (y-> y * y) .collect (Collectors.toSet ()) System.out.println (sqSet) // forEach method num.stream (). Map (y-> y * y) .forEach (x-> System.out.println (x)) / / reducera metoden int jämnt = num.stream (). filter (x-> x% 2 == 0). minska (0, (resultat, i) -> resultat + i) System.out.println (jämnt)}}

Produktion:

[36, 49, 64, 81]

[Lördag Söndag]

[Fredag ​​lördag söndag]

[81, 49, 1, 36, 25]

36

49

64

81

14

Strömmar gör det möjligt för användaren att utföra operationer på elementen effektivt.

Således har vi kommit till ett slut på den här artikeln om ”Stream in Java”. Om du vill lära dig mer, kolla in Java Training av Edureka, ett pålitligt online-lärande företag. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för att träna dig för både grundläggande och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen på den här bloggen så kommer vi tillbaka till dig så snart som möjligt.