Minden, amit tudnia kell a Java-adatfolyamról



Ez a cikk bemutatja a Java-ban a nemrégiben a Java-ban bevezetett csomagot, és részletes magyarázatot ad arra, hogy mit tehet.

Új kiegészítő csomag a Java 8-ban, néven A java.util.stream hozzáadva a felhasználók számára a hatékony programozási élmény érdekében. A folyam meghatározható objektumok sorozataként, amely többféle módszert támogat. Ebben a cikkben a Stream in-et vizsgálnánk

A következő mutatókra ez a cikk vonatkozik,





Mielőtt belekezdenénk a Java Stream cikkbe, vessünk egy pillantást néhány fontos szolgáltatásra,

Streamelés Java-ban: Jellemzők

  • A folyam nem adatstruktúra, és nem tárol elemeket. Gyűjtemények, tömbök vagy I / O csatornák, ahonnan a bemenetet veszi.
  • Az adatfolyam forrása változatlan marad, miután a műveleteket végrehajtják rajta. Például egy adatfolyam szűrése egyszerűen létrehoz egy új adatfolyamot a szűrt elemek nélkül, az eredeti adatfolyam módosítása helyett.
  • Az összesítési műveleteket, például a szűrést, a kicsinyítést, az egyezést, a keresést stb. Támogatja a stream.
  • A lustaság a stream jellemzőjének tekinthető, mivel csak szükség esetén értékeli a kódokat.
  • A folyamban jelen lévő elemek csak egy folyam élettartama alatt látogathatók meg. Új forrást kell létrehozni a forrás ugyanazon elemeinek újbóli megtekintésére.

Folytatás ezzel a cikkel a Java-adatfolyamról



Adatfolyamok létrehozása

Az adatfolyamokat a következő módszerekkel lehet előállítani:

  • folyam() - Egy szekvenciális áramot adunk vissza.Gyűjteményforrásnak tekintik.
  • parallelStream () - Párhuzamos adatfolyamot adunk vissza. A gyűjtemény a forrás.
Lista karakterláncok = Arrays.asList ('Hello', '', 'Hi', 'Hola', 'Bonjour', '', 'Namaste') Lista szűrve = strings.stream (). Filter (string ->! String. isEmpty ()). collect (Collectors.toList ())

Folytatás ezzel a cikkel a Java-adatfolyamról

hogyan állítsuk le a programot a java-ban

Műveletek az adatfolyamokon:

Közbenső műveletek:

térkép



A gyűjteményben jelen lévő elemek az argumentumként átadott predikátumnak megfelelően más objektumokhoz is leképezhetők. Az alábbi példa a számok egyedi négyzeteinek megjelenítésére szolgál a térképes módszer segítségével.

Lista száma = Arrays.asList (5,4,4,2,3,3) Lista négyzetek = num.stream (). Map (y -> y * y) .distinct (). Collect (Collectors.toList ())

szűrő

Az elemeket kritériumok alapján lehet eltávolítani ezzel a módszerrel.

List name = Arrays.asList ('szombat', 'vasárnap', 'csütörtök') List res = name.stream (). Filter (s-> s.startsWith ('S')). Collect (Collectors.toList () )

válogatott

Az adatfolyam ezzel a módszerrel rendezhető.

Lista neve = Arrays.asList ('szombat', 'vasárnap', 'csütörtök') List res = name.stream (). Sorted (). Collect (Collectors.toList ())

Streamelés Java-ban: Terminálműveletek:

gyűjt

Az adatfolyamokon végzett feldolgozás eredménye a gyűjtési művelettel kombinálható.

Lista száma = Arrays.asList (4,3,2,5,6) Állítsa be a res = num.stream (). Térképet (y-> y * y). Gyűjtse össze (Collectors.toSet ())

az egyes

Ezt a módszert használják a folyamban lévő minden elem iterációjára.

Lista száma = Arrays.asList (4,3,2,5) num.stream (). Map (x-> x * x) .forEach (y-> System.out.println (y))

csökkenteni

A folyam elemei egyetlen értékre redukálhatók ezzel a módszerrel.

Lista száma = tömbök. AsList (4,3,2,5) int páros = num.stream (). Szűrő (x-> x% 2 == 0). Reduce (0, (res, i) -> res + én)

A res változóhoz kezdetben 0 értéket rendelünk, és hozzáadjuk az i értéket.

Folytatás ezzel a cikkel a Java-adatfolyamról

Szűrő

A kód a stream módszerrel szűrhető. A következő példában a műszerek árát kiszűrjük.

import java.util. * import java.util.stream.Collectors class Instrument {int num String neve 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 () // Termékek hozzáadása instrumentsList.add (új hangszer (1, 'Gitár', 15000f)) instrumentsList.add (új Instrument (2, 'Piano', 18000f)) instrumentsList.add (új hangszer (3, 'Flute', 15000f)) instrumentsList.add (új hangszer (4, 'Dob', 48000f)) instrumentsList.add (új hangszer ( 5, 'Ukulele', 32000f)) List InstrumentPriceList2 = instrumentsList.stream () .filter (p -> p.price> 30000) // adatok szűrése .map (p-> p.price) // ár lekérése .collect ( Collectors.toList ()) // gyűjtés listaként System.out.println (InstrumentPriceList2)}}
 Kimenet: 

[48000.0, 32000.0]

Folytatás ezzel a cikkel a Java-adatfolyamról

Ismétlődő:

Az iterációt a stream Java használatával lehet végrehajtani.

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

Kimenet:

4

8.

posztgraduális mesterképzés

12.

16.

húsz

24.

Vessen egy pillantást egy másik példára, hogy hatékonyabban megértsük a java Stream fogalmát.

Példa:

import java.util. * import java.util.stream. * public class Test {public static void main (String args []) {// egész számok listájának létrehozása List num = Arrays.asList (6,7,8,9 ) // térképes módszerrel Listák négyzete = szám.folyam (). térkép (y -> y * y). gyűjt (Collectors.toList ()) System.out.println (négyzetek) // a karakterláncok listájának létrehozása days = Arrays.asList ('péntek', 'szombat', 'vasárnap') // szűrési módszer Lista res = nap .stream (). filter (s-> s.startsWith ('S')). gyűjt (Collectors.toList ()) System.out.println (res) // rendezett módszer Lista megjelenítése = days.stream (). sorted (). collect (Collectors.toList ()) System.out.println (display) / / egész számok listájának létrehozása Lista száma = Arrays.asList (6,9,5,7,1) // gyűjtési metódus egy halmazt ad vissza. Set sqSet = number.stream (). map (y-> y * y). [Collectors.toSet ()] System.out.println (sqSet) // minden metódushoz num.stream (). Map (y-> y * y) .forEach (x-> System.out.println (x)) / / csökkentés módszer int páros = szám.folyam (). szűrő (x-> x% 2 == 0). csökkentés (0, (eredmény, i) -> eredmény + i) System.out.println (páros)}}

Kimenet:

[36, 49, 64, 81.]

[Szombat vasárnap]

[Péntek szombat vasárnap]

[81, 49, 1, 36, 25]

36

49

64.

81.

mi a nyomtatás a pythonban

14

A folyamok lehetővé teszik a felhasználó számára, hogy hatékonyan végezzen műveleteket az elemekkel.

Így a „Streamelés Java-ban” című cikkünk végéhez értünk. Ha többet szeretne megtudni, nézze meg a Java Training by Edureka, egy megbízható online tanulási társaságot. Az Edureka Java J2EE és SOA képzési és tanúsítási tanfolyamát arra tervezték, hogy mind az alapvető, mind a fejlett Java koncepciókra kiképezzen különféle Java keretrendszereket, például a Hibernate & Spring.

Van egy kérdésünk? Kérjük, említse meg a blog megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.