Viskas, ką reikia žinoti apie „Java“ srautą



Šis straipsnis supažindins jus su „Java“ srautu, neseniai „Java“ pristatytu paketu ir išsamiu paaiškinimu, ką jis gali padaryti.

Naujas papildomas paketas „Java 8“, žinomas kaip „java.util.stream“ buvo pridėta vartotojams už efektyvią programavimo patirtį. Srautas gali būti apibrėžtas kaip objektų seka, palaikanti kelis metodus. Šiame straipsnyje mes norėtume ištirti srautą

Šiame straipsnyje bus aptariami šie patarimai:





Prieš pradėdami naudoti šį straipsnį „Stream In Java“, pažvelkime į keletą svarbių funkcijų,

Srautas „Java“: funkcijos

  • Srautas nėra duomenų struktūra ir jame elementai nesaugomi. Kolekcijos, masyvai ar įvesties / išvesties kanalai yra tai, kur jis ima įvestį.
  • Atlikus operacijas, srauto šaltinis lieka nemodifikuotas. Pavyzdžiui, filtruojant srautą, tiesiog sukuriamas naujas srautas be filtruotų elementų, užuot modifikavus pradinį srautą.
  • Srautas palaiko agregavimo operacijas, pvz., Filtravimą, mažinimą, atitikimą, paiešką ir kt.
  • Tingumas gali būti laikomas srauto savybe, nes jis įvertina kodus tik tada, kai to reikia.
  • Sraute esančius elementus galima aplankyti tik vieną kartą per visą srauto gyvenimą. Norint peržiūrėti tuos pačius šaltinyje esančius elementus, reikia sukurti naują srautą.

Pereiname su šiuo straipsniu apie „Stream“ „Java“



Srautų generavimas

Srautus galima generuoti šiais būdais:

  • srautas() - grąžinamas nuoseklus srautas.Kolekcijayra laikomas šaltiniu.
  • parallelStream () - grąžinamas lygiagretus srautas. Kolekcija laikoma šaltiniu.
Sąrašo eilutės = Arrays.asList ('Sveiki', '', 'Sveiki', 'Hola', 'Bonjour', '', 'Namaste') Sąrašas filtruotas = strings.stream (). Filter (eilutė ->! Eilutė. isEmpty ()). collect (Collectors.toList ())

Pereiname su šiuo straipsniu apie „Stream“ „Java“

Operacijos srautuose:

Tarpinės operacijos:

žemėlapis



Kolekcijoje esantys elementai gali būti priskirti kitiems objektams pagal predikatą, perduotą kaip argumentą. Šis pavyzdys naudojamas unikaliems skaičių kvadratams rodyti naudojant žemėlapio metodą.

Sąrašas num = Arrays.asList (5,4,4,2,3,3) Sąrašo kvadratai = num.stream (). Map (y -> y * y) .distinct (). Collect (Collectors.toList ())

filtras

Elementus galima pašalinti remiantis kriterijumi, naudojant šį metodą.

Sąrašo pavadinimas = Arrays.asList ('Šeštadienis,' Sekmadienis ',' Ketvirtadienis ') Sąrašas res = name.stream (). Filter (s-> s.startsWith (' S ')). )

surūšiuoti

Srautą galima rūšiuoti naudojant šį metodą.

kaip sukurti singleton klasę java
Sąrašo pavadinimas = Arrays.asList ('Šeštadienis,' Sekmadienis ',' Ketvirtadienis ') Sąrašas res = name.stream (). Sorted (). Collect (Collectors.toList ())

Srautas „Java“: terminalo operacijos:

rinkti

Apdorojimo srauto elementuose rezultatas gali būti sujungtas naudojant rinkimo operaciją.

Sąrašo numeris = Arrays.asList (4,3,2,5,6) Nustatykite res = num.stream (). Map (y-> y * y). Rinkite (Collectors.toSet ())

kiekvienam

Šis metodas naudojamas kartojant kiekvieną elementą, esantį sraute.

Sąrašo numeris = Arrays.asList (4,3,2,5) num.stream (). Map (x-> x * x) .forEach (y-> System.out.println (y))

sumažinti

Naudojant šį metodą, srauto elementus galima sumažinti iki vienos vertės.

Sąrašo numeris = Masyvai.asList (4,3,2,5) int lygus = skaičius.stream (). Filtras (x-> x% 2 == 0). Reduce (0, (res, i) -> res + i)

Kintamajam res iš pradžių priskiriama vertė 0 ir prie jo pridedamas i.

kur turėtų būti deklaruojami egzempliorių kintamieji java

Pereiname su šiuo straipsniu apie „Stream“ „Java“

Filtravimas

Kodas gali būti filtruojamas naudojant srauto metodą. Šiame pavyzdyje instrumentų kaina bus išfiltruota.

importuoti java.util. * importuoti java.util.stream.Collectors klasės instrumentą {int num String name float price public Instrument (int num, String name, float price) {this.num = num this.name = name this.price = kaina}} public class Test {public static void main (String [] args) {List instrumentsList = new ArrayList () // Produktų pridėjimas instrumentsList.add (new Instrument (1, 'Guitar', 15000f)) instrumentsList.add (naujas Instrumentas (2, „Pianinas“, 18000f)) instrumentaiList.add (naujas instrumentas (3, „Flute“, 15000f)) instrumentaiList.add (naujas instrumentas (4, „Būgnai“, 48000f)) instrumentaiList.add (naujas instrumentas ( 5, 'Ukulele', 32000f)) List InstrumentPriceList2 = instrumentsList.stream () .filter (p -> p.price> 30000) // duomenų filtravimas .map (p-> p.price) // gaunamos kainos .collect ( Collectors.toList ()) // rinkimas kaip sąrašas System.out.println (InstrumentPriceList2)}}
 Išvestis: 

[48000.0, 32000.0]

Pereiname su šiuo straipsniu apie „Stream“ „Java“

Kartojasi:

Iteraciją galima atlikti naudojant „Java“ srautą.

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

Išvestis:

4

8

12

16

dvidešimt

24

Pažvelkime į kitą pavyzdį, kad efektyviau suprastume „Stream in Java“ sąvoką.

Pavyzdys:

importuoti java.util. * importuoti java.util.stream. * viešosios klasės testas {public static void main (String args []) {// sveikųjų skaičių sąrašo kūrimas Sąrašas num = Arrays.asList (6,7,8,9 ) // naudojant žemėlapio metodą Išvardykite kvadratus = skaičius. srovė (). žemėlapis (y -> y * y). rinkti (Collectors.toList ()) System.out.println (kvadratai) // eilučių sąrašo sukūrimas dienų = Arrays.asList ('penktadienis,' šeštadienis ',' sekmadienis ') // filtravimo metodas sąrašas res = dienos .stream (). filter (s-> s.startsWith ('S')). rinkti (Collectors.toList ()) System.out.println (res) // rūšiuojamas metodas Sąrašo rodymas = days.stream (). sorted (). collect (Collectors.toList ()) System.out.println (rodyti) / / sveikųjų skaičių sąrašo sukūrimas Sąrašo numeris = Arrays.asList (6,9,5,7,1) // metodas rinkti grąžina rinkinį Set sqSet = number.stream (). map (y-> y * y). rinkti [Collectors.toSet ()] System.out.println (sqSet) // forEach metodas num.stream (). Map (y-> y * y) .forEach (x-> System.out.println (x)) / / sumažinti metodą int lygus = skaičius.stream (). filtras (x-> x% 2 == 0) .reduce (0, (rezultatas, i) -> rezultatas + i) System.out.println (lyginis)}}

Išvestis:

[36, 49, 64, 81]

[Šeštadienis Sekmadienis]

[Penktadienis, šeštadienis, sekmadienis]

[81, 49, 1, 36, 25]

36

49

64

81

14

Srautai leidžia vartotojui efektyviai atlikti elementų operacijas.

Taigi mes baigėme šį straipsnį apie „Srautą„ Java ““. Jei norite sužinoti daugiau, apsilankykite patikimos internetinės mokymosi įmonės „Edureka“ „Java“ mokymuose. „Edureka“ „Java J2EE“ ir SOA mokymo ir sertifikavimo kursai yra skirti mokyti jus tiek pagrindinėms, tiek pažangesnėms „Java“ koncepcijoms kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.

Pagrindinis skirtumas tarp įsilaužėlio ir etiško įsilaužėlio yra:

Turite mums klausimą? Prašau tai paminėti šio tinklaraščio komentarų skiltyje ir mes kuo greičiau susisieksime su jumis.