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.