Vše, co potřebujete vědět o Stream v Javě



Tento článek vám představí Stream v Javě balíček nedávno představený v Javě a podrobné vysvětlení toho, co dokáže.

Nový další balíček v Javě 8, známý jako java.util.stream byl přidán pro uživatelům efektivní programování. Proud lze definovat jako posloupnost objektů podporujících více metod. V tomto článku bychom zkoumali Stream in

V tomto článku se budeme zabývat následujícími ukazateli,





Než začneme s tímto článkem o Stream In Java, podívejme se na některé důležité funkce,

Stream v Javě: Funkce

  • Proud není datová struktura a neukládá prvky. Kolekce, pole nebo I / O kanály jsou zdrojem vstupního signálu.
  • Po provedení operací na něm zůstane zdroj proudu nezměněn. Například filtrování streamu jednoduše vytvoří nový stream bez filtrovaných prvků, místo úpravy původního streamu.
  • Streamovací operace podporují agregační operace, jako je filtrování, redukce, shoda, hledání atd.
  • Lenost lze považovat za rys streamu, protože vyhodnocuje kódy pouze v případě potřeby.
  • Návštěvu prvků přítomných ve streamu lze provést pouze jednou během životnosti streamu. Chcete-li znovu navštívit stejné prvky ve zdroji, je třeba vytvořit nový stream.

Pokračujeme tímto článkem o Streamování v Javě



Generování streamů

Proudy lze generovat následujícími metodami:

  • proud() - Je vrácen sekvenční stream.Sbírkaje považován za zdroj.
  • parallelStream () - Je vrácen paralelní stream. Sbírka je považována za zdroj.
List strings = Arrays.asList ('Hello', '', 'Hi', 'Hola', 'Bonjour', '', 'Namaste') Listfiltrovaný = strings.stream (). Filter (string ->! String. isEmpty ()). collect (Collectors.toList ())

Pokračujeme tímto článkem o Streamování v Javě

výuka serveru SQL pro začátečníky s příklady

Operace na streamech:

Zprostředkující operace:

mapa



Prvky přítomné v kolekci lze mapovat na jiné objekty podle predikátu předaného jako argument. Následující příklad se používá k zobrazení jedinečných čtverců čísel pomocí metody map.

List num = Arrays.asList (5,4,4,2,3,3) List squares = num.stream (). Map (y -> y * y) .distinct (). Collect (Collectors.toList ())

filtr

Pomocí této metody lze prvky odstranit na základě kritérií.

Název seznamu = Arrays.asList ('Sobota', 'Neděle', 'Čtvrtek') Seznam res = name.stream (). Filter (s-> s.startsWith ('S')). Collect (Collectors.toList () )

tříděny

Proud lze řadit pomocí této metody.

Název seznamu = Arrays.asList ('Sobota', 'Neděle', 'Čtvrtek') Seznam res = name.stream (). Tříděný (). Collect (Collectors.toList ())

Stream v Javě: Provoz terminálu:

sbírat

Výsledek zpracování na prvcích proudu lze kombinovat pomocí operace shromažďování.

List num = Arrays.asList (4,3,2,5,6) Set res = num.stream (). Map (y-> y * y) .collect (Collectors.toSet ())

pro každého

Tato metoda se používá pro iteraci všemi prvky přítomnými v proudu.

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

snížit

Pomocí této metody lze prvky proudu snížit na jednu hodnotu.

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

Proměnné res je původně přiřazena hodnota 0 a do ní je přidáno i.

Pokračujeme tímto článkem o Streamování v Javě

Filtrování

Kód lze filtrovat pomocí metody streamu. V následujícím příkladu se cena nástrojů odfiltruje.

import java.util. * import java.util.stream.Collectors třída Nástroj {int num Název řetězce float price public Instrument (int num, Název řetězce, float cena) {this.num = num this.name = pojmenovat this.price = cena}} test veřejné třídy {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)) instrumentsList.add (new Instrument (3, 'Flute', 15000f)) instrumentsList.add (new Instrument (4, 'Drums', 48000f)) instrumentsList.add (new Instrument ( 5, 'Ukulele', 32000f)) List InstrumentPriceList2 = instrumentsList.stream () .filter (p -> p.price> 30000) // filtrování dat .map (p-> p.price) // načítání ceny .collect ( Collectors.toList ()) // shromažďování jako seznam System.out.println (InstrumentPriceList2)}}
 Výstup: 

[48000,0; 32000,0]

Pokračujeme tímto článkem o Streamování v Javě

Iterace:

Iteraci lze provést pomocí proudu v Javě.

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

Výstup:

která metoda třídy skeneru čte řetězec?

4

8

12

16

dvacet

24

Podívejme se na další příklad, abychom lépe porozuměli konceptu Stream v Javě.

Příklad:

import java.util. * import java.util.stream. * veřejná třída Test {public static void main (String args []) {// vytvoření seznamu celých čísel Seznam num = Arrays.asList (6,7,8,9 ) // pomocí metody mapy List squares = num.stream (). map (y -> y * y). collect (Collectors.toList ()) System.out.println (čtverce) // vytvoření seznamu String List days = Arrays.asList ('Friday', 'Saturday', 'Sunday') // metoda filtrování Seznam res = dní .stream (). filter (s-> s.startsWith ('S')). collect (Collectors.toList ()) System.out.println (res) // tříděná metoda Zobrazení seznamu = days.stream (). seřazeno (). collect (Collectors.toList ()) System.out.println (display) / / vytvoření seznamu celých čísel Číslo seznamu = Arrays.asList (6,9,5,7,1) // metoda collect vrátí sadu Set sqSet = number.stream (). map (y-> y * y) .collect (Collectors.toSet ()) System.out.println (sqSet) // forEach method num.stream (). Map (y-> y * y) .forEach (x-> System.out.println (x)) / / redukovat metodu int even = num.stream (). filter (x-> x% 2 == 0) .reduce (0, (result, i) -> result + i) System.out.println (even)}}

Výstup:

[36, 49, 64, 81]

[Sobota neděle]

[Pátek sobota neděle]

[81, 49, 1, 36, 25]

36

49

64

81

převést desítkové na binární v pythonu

14

Proudy umožňují uživateli efektivně provádět operace s prvky.

Tak jsme dospěli ke konci tohoto článku o „Streamování v Javě“. Pokud se chcete dozvědět více, podívejte se na Java Training by Edureka, důvěryhodná online vzdělávací společnost. Školicí a certifikační kurz Edureka Java J2EE a SOA je navržen tak, aby vás vyškolil jak pro základní, tak pro pokročilé koncepty Java spolu s různými rámci Java, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu a my se vám ozveme co nejdříve.