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.