Viss, kas jums jāzina par straumēšanu Java



Šis raksts iepazīstinās jūs ar straumēšanu Java, kas nesen tika ieviesta Java, un detalizētu paskaidrojumu par to, ko tā var darīt.

Jauna papildu pakotne Java 8, kas pazīstama kā Java.util.stream ir pievienots domēnam lietotājiem efektīvai programmēšanas pieredzei. Straumi var definēt kā objektu secību, kas atbalsta vairākas metodes. Šajā rakstā mēs izpētīsim straumi

Šajā rakstā tiks apskatīti šādi norādījumi,





Pirms sākam darbu ar šo rakstu par straumi Java, apskatīsim dažas svarīgas funkcijas,

Straumēšana Java: funkcijas

  • Straume nav datu struktūra, un tajā netiek glabāti elementi. Kolekcijas, masīvi vai I / O kanāli ir tas, no kurienes tas ņem ievadi.
  • Pēc operāciju veikšanas straumes avots paliek nemodificēts. Piemēram, straumes filtrēšana vienkārši rada jaunu straumi bez filtrētiem elementiem, tā vietā, lai modificētu sākotnējo straumi.
  • Straumēšana atbalsta tādas apkopošanas darbības kā filtrēšana, samazināšana, saskaņošana, atrašana utt.
  • Slinkumu var uzskatīt par straumes iezīmi, jo tā kodus novērtē tikai pēc nepieciešamības.
  • Plūsmā esošo elementu apskati var veikt tikai vienu reizi straumes dzīves laikā. Lai atkārtoti apmeklētu tos pašus avotā esošos elementus, ir jāizveido jauna straume.

Turpinot šo rakstu par straumi Java



Ģenerē straumes

Straumes var ģenerēt, izmantojot šādas metodes:

  • straume () - tiek atgriezta secīga straume.Kolekcijatiek uzskatīts par avotu.
  • parallelStream () - tiek atgriezta paralēla straume. Kolekcija tiek uzskatīta par avotu.
Saraksta virknes = Arrays.asList ('Hello', '', 'Hi', 'Hola', 'Bonjour', '', 'Namaste') Saraksts filtered = strings.stream (). Filter (string ->! String. isEmpty ()). collect (Collectors.toList ())

Turpinot šo rakstu par straumi Java

Darbības ar straumēm:

Starpoperācijas:

karte



Kolekcijā esošos elementus var kartēt ar citiem objektiem saskaņā ar predikātu, kas nodots kā arguments. Šis piemērs tiek izmantots, lai parādītu unikālus skaitļu kvadrātus, izmantojot kartes metodi.

Saraksta num = Arrays.asList (5,4,4,2,3,3) Saraksta kvadrāti = num.stream (). Karte (y -> y * y) .distinct (). Collect (Collectors.toList ())

filtru

Izmantojot šo metodi, elementus var noņemt, pamatojoties uz kritērijiem.

Saraksta nosaukums = Arrays.asList ('Sestdiena', 'Svētdiena', 'Ceturtdiena') Saraksta res = name.stream (). Filtrs (s-> s.startsWith ('S')). Collect (Collectors.toList () )

sakārtoti

Izmantojot šo metodi, straumi var kārtot.

Saraksta nosaukums = Arrays.asList ('Sestdiena', 'Svētdiena', 'Ceturtdiena') Saraksta res = name.stream (). Sakārtots (). Collect (Collectors.toList ())

Straume Java: Termināla operācijas:

savākt

Apstrādes rezultātu plūsmas elementos var apvienot, izmantojot savākšanas operāciju.

Saraksta numurs = Arrays.asList (4,3,2,5,6) Iestatiet res = num.stream (). Map (y-> y * y). Kolekcionējiet (Collectors.toSet ())

katram

Šo metodi izmanto iterācijai caur katru straumē esošo elementu.

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

samazināt

Izmantojot šo metodi, straumes elementus var samazināt līdz vienai vērtībai.

Saraksta num = Arrays.asList (4,3,2,5) int pat = num.stream (). Filtrs (x-> x% 2 == 0). Samazināt (0, (res, i) -> res + i)

Mainīgajam res sākotnēji tiek piešķirta vērtība 0, un tam tiek pievienots i.

Turpinot šo rakstu par straumi Java

Filtrēšana

Kodu var filtrēt, izmantojot straumes metodi. Šajā piemērā instrumentu cena tiek filtrēta.

kā paaugstināt spēkus java
importēt java.util. * importēt java.util.stream.Collectors class Instrument {int num String name float price public Instrument (int num, String name, float price) {this.num = num this.name = nosaukt šo.cenu = cena}} public class Test {public static void main (String [] args) {List instrumentsList = new ArrayList () // Produktu pievienošana instrumentsList.add (new Instrument (1, 'Guitar', 15000f)) instrumentsList.add (jauns Instruments (2, 'Piano', 18000f)) instrumentsList.add (jauns instruments (3, 'Flute', 15000f)) instrumentsList.add (jauns instruments (4, 'Bungas', 48000f)) instrumentsList.add (jauns instruments ( 5, 'Ukulele', 32000f)) List InstrumentPriceList2 = instrumentsList.stream () .filter (p -> p.price> 30000) // datu filtrēšana .map (p-> p.price) // cenas noformēšana .collect ( Collectors.toList ()) // apkopošana kā saraksts System.out.println (InstrumentPriceList2)}}
 Izeja: 

[48000,0, 32000,0]

Turpinot šo rakstu par straumi Java

Atkārtojas:

Atkārtojumu var veikt, izmantojot straumi Java.

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

Izeja:

4

8

12

16

divdesmit

24

Apskatīsim vēl vienu piemēru, lai efektīvāk izprastu Stream java jēdzienu.

Piemērs:

importēt java.util. * importēt java.util.stream. * public class Test {public static void main (String args []) {// izveidot veselu skaitļu sarakstu List num = Arrays.asList (6,7,8,9 ) // izmantojot kartes metodi Saraksta kvadrāti = num.stream (). karte (y -> y * y). savākt (Collectors.toList ()) System.out.println (kvadrāti) // virkņu saraksta izveidošana dienas = Arrays.asList ('piektdiena', 'sestdiena', 'svētdiena') // filtrēšanas metode Saraksta res = dienas .stream (). filtrs (s-> s.startsWith ('S')). savākt (Collectors.toList ()) System.out.println (res) // sakārtota metode Saraksta displejs = days.stream (). sakārtots (). collect (Collectors.toList ()) System.out.println (display) / / veselu skaitļu saraksta izveide Saraksta numurs = Arrays.asList (6,9,5,7,1) // metode metodei atgriež kopu Set sqSet = number.stream (). map (y-> y * y). apkopot [Collectors.toSet ()] System.out.println (sqSet) // katras metodes num.stream (). Karte (y-> y * y) .forEach (x-> System.out.println (x)) / / samazināt metodi int pat = num.stream (). filtrs (x-> x% 2 == 0) .reduce (0, (rezultāts, i) -> rezultāts + i) System.out.println (pat)}}

Izeja:

[36, 49, 64, 81.]

[Sestdiena Svētdiena]

[Piektdiena, sestdiena, svētdiena]

[81, 49, 1, 36, 25]

36

49

64.

81.

14

Straumes ļauj lietotājam efektīvi veikt darbības ar elementiem.

Tādējādi esam nonākuši pie šī raksta par straumi Java. Ja vēlaties uzzināt vairāk, skatiet uzticamo tiešsaistes mācību uzņēmumu Edureka Java apmācību. Edureka Java J2EE un SOA apmācības un sertifikācijas kurss ir paredzēts, lai apmācītu jūs gan galvenajiem, gan uzlabotajiem Java jēdzieniem kopā ar dažādiem Java ietvariem, piemēram, Hibernate & Spring.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.

c vs c ++ vs java