Lahat ng Kailangan Mong Malaman Tungkol sa Stream Sa Java



Ipakilala ka ng artikulong ito sa Stream sa Java ng isang pakete na kamakailang ipinakilala sa Java at ikaw ay isang detalyadong paliwanag sa kung ano ang magagawa nito.

Ang isang bagong karagdagang pakete sa Java 8, na kilala bilang Ang java.util.stream ay naidagdag para sa ang mga gumagamit para sa isang mahusay na karanasan sa programa. Ang isang stream ay maaaring tinukoy bilang isang pagkakasunud-sunod ng mga bagay, sumusuporta sa maraming mga pamamaraan. Sa artikulong ito kami ay tuklasin ang Stream sa

Ang mga sumusunod na tagubilin ay Saklaw sa Artikulo na ito,





Bago kami magsimula sa artikulong ito sa Stream In Java, tingnan muna natin ang ilang mahahalagang tampok,

Stream Sa Java: Mga Tampok

  • Ang isang stream ay hindi isang istraktura ng data at hindi nag-iimbak ng mga elemento. Ang Mga Koleksyon, Array o I / O Channel ay kung saan kinukuha ang input.
  • Ang pinagmulan ng stream ay mananatiling hindi nabago pagkatapos maisagawa ang mga operasyon dito. Halimbawa, ang pag-filter ng isang stream ay gumagawa lamang ng isang bagong stream nang walang mga nai-filter na elemento, sa halip na baguhin ang orihinal na stream.
  • Ang mga pagpapatakbo ng pagsasama-sama tulad ng filter, bawasan, tugma, hanapin, atbp ay sinusuportahan ng stream.
  • Ang katamaran ay maaaring isaalang-alang bilang isang tampok ng stream, dahil sinusuri nito ang mga code kapag kinakailangan.
  • Ang pagbisita sa mga elemento na naroroon sa stream ay maaari lamang gawin nang isang beses sa habang buhay ng isang stream. Ang isang bagong stream ay dapat nilikha upang muling bisitahin ang parehong mga elemento na naroroon sa mapagkukunan.

Nagpapatuloy sa artikulong ito sa Stream sa Java



Bumubuo ng Mga Stream

Ang mga stream ay maaaring mabuo ng mga sumusunod na pamamaraan:

  • stream () - Ang isang sunud-sunod na stream ay naibalik.Koleksyonay itinuturing na ang mapagkukunan.
  • parallelStream () - Ang isang parallel stream ay ibinalik. Ang koleksyon ay isinasaalang-alang bilang mapagkukunan.
Listahan ng mga string = Arrays.asList ('Hello', '', 'Hi', 'Hola', 'Bonjour', '', 'Namaste') Listahan ng nasala = strings.stream (). Filter (string ->! String. ayEmpty ()). mangolekta (Collector.toList ())

Nagpapatuloy sa artikulong ito sa Stream sa Java

Mga pagpapatakbo sa Mga Stream:

Mga Pansamantalang Operasyon:

mapa



Ang mga elemento na naroroon sa koleksyon ay maaaring mapa sa iba pang mga bagay ayon sa predicate na naipasa bilang pagtatalo. Ang sumusunod na halimbawa ay ginagamit upang ipakita ang natatanging mga parisukat ng mga numero sa pamamagitan ng paggamit ng pamamaraan ng mapa.

Listahan ng num = Arrays.asList (5,4,4,2,3,3) Listahan ng mga parisukat = num.stream (). Mapa (y -> y * y). Magkakaiba (). Mangolekta (Collector.toList ())

salain

Ang mga elemento ay maaaring alisin sa batayan ng isang pamantayan sa pamamagitan ng paggamit ng pamamaraang ito.

Listahan ng pangalan = Arrays.asList ('Sabado', 'Linggo', 'Huwebes') Listahan ng res = name.stream (). Filter (s-> s.startsWith ('S')). Kolektahin (Collectors.toList () )

pinagsunod-sunod

Maaaring pag-uri-uriin ang stream sa pamamagitan ng paggamit ng pamamaraang ito.

Listahan ng pangalan = Arrays.asList ('Sabado', 'Linggo', 'Huwebes') Listahan ng res = name.stream (). Pinagsunod-sunod (). Kolektahin (Collector.toList ())

Stream Sa Java: Mga Operasyon ng Terminal:

mangolekta

Ang resulta ng pagproseso sa mga elemento ng isang stream ay maaaring pagsamahin sa pamamagitan ng paggamit ng operasyon ng pagkolekta.

Listahan ng num = Arrays.asList (4,3,2,5,6) Itakda ang res = num.stream (). Mapa (y-> y * y) .collect (Collectors.toSet ())

para sa bawat

Ginagamit ang pamamaraang ito para sa pag-ulit sa bawat elemento na naroroon sa stream.

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

bawasan

Ang mga elemento ng stream ay maaaring mabawasan sa isang solong halaga sa pamamagitan ng paggamit ng pamamaraang ito.

Listahan ng num = Arrays.asList (4,3,2,5) int even = num.stream (). Filter (x-> x% 2 == 0). Bawasan (0, (res, i) -> res + i)

Ang variable res ay itinalaga ang halagang 0 sa una, at ako ay idinagdag dito.

Nagpapatuloy sa artikulong ito sa Stream sa Java

Pagsala

Maaaring ma-filter ang code sa pamamagitan ng paggamit ng paraan ng stream. Sa sumusunod na halimbawa, ang presyo ng mga instrumento ay nasala.

ano ang ibig sabihin ng append sa java
import java.util. * import java.util.stream.Collectors class Instrumento {int num String name float price public Instrument (int num, String name, float price) {this.num = num this.name = name this.price = presyo}} pampublikong klase Pagsubok {public static void main (String [] args) {List instrumenList = bagong ArrayList () // Pagdaragdag ng Mga Produkto instrumentList.add (bagong Instrumento (1, 'Guitar', 15000f)) instrumentList.add (bago Instrumento (2, 'Piano', 18000f)) instrumentList.add (bagong Instrumento (3, 'Flute', 15000f)) instrumentList.add (bagong Instrumento (4, 'Drums', 48000f)) instrumentList.add (bagong Instrumento ( 5, 'Ukulele', 32000f)) Listahan ng InstrumentPriceList2 = instrumentList.stream (). Filter (p -> p.price> 30000) // data ng pag-filter. Mapa (p-> p.price) // pagkuha ng presyo .collect ( Collector.toList ()) // pagkolekta bilang listahan System.out.println (InstrumentPriceList2)}}
 Output: 

[48000.0, 32000.0]

Nagpapatuloy sa artikulong ito sa Stream sa Java

Iterating:

Maaaring maisagawa ang Iteration sa pamamagitan ng paggamit ng stream sa java.

import java.util.stream. * pampublikong klase Pagsubok {pampublikong static void main (String [] args) {Stream.iterate (1, element-> element + 1) .filter (element-> element% 4 == 0). limitasyon (6) .forEach (System.out :: println)}}

Output:

4

8

12

16

dalawampu

24

Tingnan natin ang isa pang halimbawa, upang maunawaan ang konsepto ng Stream sa java nang mas epektibo.

Halimbawa:

import java.util. * import java.util.stream. * pampublikong klase Pagsubok {public static void main (String args []) {// paglikha ng isang listahan ng mga integer Listahan num = Arrays.asList (6,7,8,9 ) // gamit ang paraan ng mapa Listahan ng mga parisukat = num.stream (). mapa (y -> y * y). mangolekta (Collector.toList ()) System.out.println (mga parisukat) // lumilikha ng isang listahan ng mga araw ng Listahan ng String = Mga Array.asList ('Biyernes', 'Sabado', 'Linggo') // pamamaraan ng filter Listahan ng res = araw .stream (). filter (s-> s.startsWith ('S')). kolektahin (Collector.toList ()) System.out.println (res) // sorted na paraan ng Pagpapakita ng listahan = araw.stream (). pinagsunod-sunod (). kolektahin (Collector.toList ()) System.out.println (display) / / Lumilikha ng isang listahan ng mga integer Listahan ng numero = Mga Array.asList (6,9,5,7,1) // ang paraan ng pagkolekta ay nagbabalik ng isang set Itakda ang sqSet = number.stream (). mapa (y-> y * y) .collect (Collector.toSet ()) System.out.println (sqSet) // forEach method num.stream (). Mapa (y-> y * y) .forEach (x-> System.out.println (x)) / / bawasan ang pamamaraan int even = num.stream (). filter (x-> x% 2 == 0). bawasan (0, (resulta, i) -> resulta + i) System.out.println (even)}}

Output:

[36, 49, 64, 81]

[Sabado Linggo]

[Biyernes Sabado Linggo]

[81, 49, 1, 36, 25]

36

49

64

81

14

Ang mga stream ay nagbibigay-daan sa gumagamit na magsagawa ng mga pagpapatakbo sa mga elemento nang epektibo.

Sa gayon ay natapos na kami sa artikulong ito sa 'Stream in Java'. Kung nais mong matuto nang higit pa, suriin ang Java Training ni Edureka, isang pinagkakatiwalaang kumpanya sa online na pag-aaral. Ang kurso sa pagsasanay at sertipikasyon ng Java J2EE at SOA ng Edureka ay idinisenyo upang sanayin ka para sa parehong core at advanced na mga konsepto ng Java kasama ang iba't ibang mga balangkas ng Java tulad ng Hibernate & Spring.

malaking paglalarawan sa trabaho ng developer ng data

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng blog na ito at babalikan ka namin sa lalong madaling panahon.