Filter toku (predikátový predikát) vráti prúd pozostávajúci z prvkov tohto prúdu, ktoré sa zhodujú s daným predikátom. Toto je medzioperačná prevádzka. Tieto operácie sú vždy lenivé, t. j. vykonanie prechodnej operácie, ako je filter(), v skutočnosti nevykonáva žiadne filtrovanie, ale namiesto toho vytvára nový prúd, ktorý pri prechode obsahuje prvky počiatočného prúdu, ktoré zodpovedajú danému predikátu.
Syntax:
formátovať dátum v jave
Stream filter(Predicate predicate)>
Kde Stream je rozhranie a T je typ vstupu do predikátu.
Typ návratu: Nový stream.
Implementácia:
- Filtrovanie prvkov deliteľných určitým konkrétnym číslom v rozsahu od 0 do 10.
- Filtrovanie prvkov s veľkým písmenom pri akomkoľvek konkrétnom indexe.
- Filtrovanie prvkov končiacich vlastnými písmenami abecedy.
Príklad 1: metóda filter() s operáciou odfiltrovania prvkov deliteľných 5.
Java
// Java Program to get a Stream Consisting of the Elements> // of Stream that Matches Given Predicate for Stream filter> // (Predicate predicate)> > // Importing required classes> import> java.util.*;> > // Class> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> > >// Creating a list of Integers> >List list = Arrays.asList(>3>,>4>,>6>,>12>,>20>);> > >// Getting a stream consisting of the> >// elements that are divisible by 5> >// Using Stream filter(Predicate predicate)> >list.stream()> >.filter(num ->číslo %>5> ==>0>)> >.forEach(System.out::println);> >}> }> |
>
>Výkon
20>
Príklad 2: metóda filter() s operáciou filtrovania prvkov s veľkým písmenom na indexe 1.
Java
// Java Program to Get Stream Consisting of Elements> // of Stream that Matches Given Predicate> // for Stream Filter (Predicate predicate)> > // Importing required classes> import> java.util.stream.Stream;> > // Class> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating a stream of strings> >Stream stream = Stream.of(> >'Geeks'>,>'fOr'>,>'GEEKSQUIZ'>,>'techcodeview.com'>);> > >// Getting a stream consisting of the> >// elements having UpperCase Character> >// at custom index say be it '1'> >// using Stream filter(Predicate predicate)> >stream> >.filter(> >str ->Character.isUpperCase(str.charAt(>1>)))> >.forEach(System.out::println);> >}> }> |
>
prechod na objednávku
>Výkon
fOr GEEKSQUIZ>
Príklad 3: metóda filter() s operáciou odfiltrovania prvkov končiacich vlastným abecedným písmenom povedzme, že je to „s“ na účely implementácie.
Java
metódy java arraylist
// Java Program to Get a Stream Consisting ofElements> // of Stream that Matches Given predicate> // for Stream filter (Predicate predicate)> > // Importing required classes> import> java.util.stream.Stream;> > // Class> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> > >// Creating a stream of strings> >Stream stream = Stream.of(> >'Geeks'>,>'foR'>,>'GeEksQuiz'>,>'techcodeview.com'>);> > >// Getting a stream consisting of the> >// elements ending with 's'> >// using Stream filter(Predicate predicate)> >stream.filter(str ->str.endsWith(>'s'>))> >.forEach(System.out::println);> >}> }> |
>
>Výkon
Geeks techcodeview.com>