Rozhranie API Java 8 Streams peek ()

1. Úvod

Rozhranie Java Stream API nám predstavuje výkonnú alternatívu spracovania údajov.

V tomto krátkom návode sa zameriame na nahliadnuť (), často nepochopená metóda.

2. Rýchly príklad

Zašpiníme si ruky a skúsme to využiť nahliadnuť (). Máme prúd mien a chceme ich vytlačiť na konzolu.

Odkedy nahliadnuť () očakáva a Spotrebiteľ ako jediný argument sa javí ako vhodný, takže to skúsme:

Názov streamuStream = Stream.of ("Alice", "Bob", "Chuck"); nameStream.peek (System.out :: println);

Fragment vyššie však neprodukuje žiadny výstup. Aby sme pochopili prečo, urobme si krátku aktualizáciu o aspektoch životného cyklu streamu.

3. Medzistupňové vs.

Pripomeňme, že streamy majú tri časti: zdroj údajov, nulovú alebo viac prechodných operácií a nulovú alebo jednu terminálovú operáciu.

Zdroj poskytuje prvky potrubiu.

Prostredné operácie získavajú prvky jeden po druhom a spracovávajú ich. Všetky prechodné operácie sú lenivé a vo výsledku nebudú mať žiadne operácie žiadny efekt, kým nezačne pracovať ropovod.

Terminálové operácie znamenajú koniec životného cyklu toku. Najdôležitejšie pre náš scenár je, že zahájiť prácu v potrubí.

4. nahliadnuť () Využitie

Dôvod nahliadnuť () nefunguje v našom prvom príklade je to je to medziprodukt operáciu a neaplikovali sme a terminál prevádzka k potrubiu. Prípadne sme mohli použiť pre každý() rovnakým argumentom pre získanie požadovaného správania:

Názov streamuStream = Stream.of ("Alice", "Bob", "Chuck"); nameStream.forEach (System.out :: println);

nahliadnuť ()Stránka Javadoc hovorí: „Táto metóda existuje hlavne na podporu ladenia, kde chcete vidieť prvky, ktoré prúdia okolo určitého bodu v potrubí“.

Uvažujme o tomto úryvku z rovnakej stránky Javadoc:

Stream.of ("jeden", "dva", "tri", "štyri"). Filter (e -> e.length ()> 3) .peek (e -> System.out.println ("Filtrovaná hodnota: "+ e)) .map (String :: toUpperCase) .peek (e -> System.out.println (" Namapovaná hodnota: "+ e)) .collect (Collectors.toList ());

Ukazuje, ako pozorujeme prvky, ktoré prešli každou operáciou.

Na vrchu tamtoho, nahliadnuť () môžu byť užitočné v inom scenári: keď chceme zmeniť vnútorný stav prvku. Povedzme napríklad, že chceme pred vytlačením previesť meno používateľa na malé písmená:

Stream userStream = Stream.of (nový používateľ („Alice“), nový používateľ („Bob“), nový používateľ („Chuck“)); userStream.peek (u -> u.setName (u.getName (). toLowerCase ())) .forEach (System.out :: println);

Prípadne sme mohli použiť mapa (), ale nahliadnuť () je pohodlnejšie, pretože nechceme nahradiť prvok.

5. Záver

V tomto krátkom tutoriáli sme videli zhrnutie životného cyklu streamu, aby sme pochopili ako nahliadnuť () Tvorba. Pri používaní sme videli aj dva prípady každodenného použitia nahliadnuť () je najpriamejšou možnosťou.

A ako obvykle sú príklady k dispozícii na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found