“ Filtrovanie zoznamu ” v Jave je praktický pre vývojárov, ktorí väčšinou pracujú s dátami. Nadobudne účinnosť pri aktualizácii funkcií kódu, odstraňovaní záznamov alebo využívaní údajov obsiahnutých v samostatnom zozname. V takýchto scenároch je prístup filtrovania zoznamov nápomocný pri efektívnej správe času aj pamäte na konci vývojárov.
Tento blog vás prevedie filtrovaním zoznamu Java.
Aký je proces filtrovania zoznamu Java?
Zoznam v jazyku Java je možné filtrovať pomocou nasledujúcich postupov:
Importujte nižšie uvedený balík vo všetkých príkladoch tohto blogu, aby ste získali prístup ku všetkým funkciám v rámci „ java.util “balíček:
importovať java.util.* ;
Prístup 1: Filtrovanie zoznamu v jazyku Java pomocou slučky „for“.
Tento prístup uplatňuje „ pre ” slučka na vytvorenom „Zozname“ tak, že nový „ ArrayList ” sa pripája k filtrovaným položkám.
Príklad
Prehľad nižšie uvedených riadkov kódu:
verejnosti trieda Zoznam filtrov {verejnosti statické neplatné Hlavná ( Reťazec [ ] args ) {
Zoznam < Reťazec > danýZoznam = Polia . asList ( 'pero' , 'guma' , 'ostrička' ) ;
systém . von . println ( 'Daný zoznam ->' + danýZoznam ) ;
Zoznam < Reťazec > listFilter = Nový ArrayList <> ( ) ;
pre ( Reťazec položka : danýZoznam ) {
ak ( položka. začína s ( 'A' ) ) {
listFilter. pridať ( položka ) ;
} }
systém . von . println ( 'Filtrovaný zoznam ->' + listFilter ) ;
} }
Podľa tohto bloku kódu:
- Vytvorte zoznam „ Reťazec ” dátové typy, ktoré majú uvedené hodnoty reťazca a zobrazia sa.
- Potom vytvorte nový „ ArrayList “ s názvom “ listFilter ” a pripojíte ho k položkám odfiltrovaným z predchádzajúceho zoznamu.
- Teraz použite „ pre ” cyklus na iteráciu podľa definovaného prvého zoznamu a jeho filtrovanie na základe použitej podmienky, t. j. položky začínajúce znakom “ A “.
- Po splnení podmienky sa k filtrovanému zoznamu pripojí konkrétny reťazec.
Výkon
Ako vidíte, k filtrovanému zoznamu sa pridá reťazec, ktorý spĺňa použitú podmienku.
Prístup 2: Filtrovanie zoznamu v jazyku Java pomocou slučky „while“.
Pri tomto prístupe „ zatiaľ čo “slučka môže byť implementovaná spolu s “ Iterátor ” a jej metódy na filtrovanie poskytnutého zoznamu. Tieto metódy zahŕňajú „ hasNext()“ a „next() ” metódy, ktoré vyvolajú ďalšiu hodnotu zo zoznamu, ak nejaká existuje.
Syntax
boolovská hodnota hasNext ( )Táto metóda vracia boolovský výsledok, tj. 'pravda alebo lož' .
verejnosti Ďalší ( )Tu, ' A “ zodpovedá „ Rozhranie iterátora “.
Príklad
Teraz prejdite na nasledujúci kód:
verejnosti trieda Zoznam filtrov {verejnosti statické neplatné Hlavná ( Reťazec [ ] args ) {
Zoznam < Reťazec > danýZoznam = Nový ArrayList <> (
Polia . asList ( 'Java' , 'programovanie' , 'v' , 'linux' ) ) ;
systém . von . println ( 'Daný zoznam ->' + danýZoznam ) ;
Iterátor < Reťazec > iteráciu = danýZoznam. iterátor ( ) ;
zatiaľ čo ( iteráciu. hasNext ( ) ) {
Reťazec curr = iteráciu. Ďalšie ( ) ;
ak ( curr. začína s ( 'P' ) ) {
iteráciu. odstrániť ( ) ;
} }
systém . von . println ( 'Filtrovaný zoznam ->' + danýZoznam ) ;
} }
Podľa vyššie uvedeného kódu:
- Vytvorte „ ArrayList “z “ Reťazec ” zadajte s poskytnutými hodnotami a zobrazte ho.
- Teraz iterujte cez prvky zoznamu cez „ Iterátor ' trieda.
- Tiež použite „ zatiaľ čo “, aby ste skontrolovali, či je v zozname ďalší prvok cez „ hasNext() “ a získajte ju na základe použitej “ Ďalšie() “.
- Teraz skontrolujte, či iterovaný prvok v zozname spĺňa uvedenú podmienku, ako je uvedené v predchádzajúcom príklade.
- Po splnení podmienky sa daný prvok namiesto toho odstráni a zoznam sa prefiltruje.
Výkon
Po analýze sa prvok spĺňajúci špecifikovanú podmienku náležite odstráni zo zoznamu.
Zahrňte nižšie uvedený dodatočný balík do ďalšieho prístupu, aby ste umožnili prácu s „ Zberatelia ' trieda:
importovať java.util.stream.Collectors ;Prístup 3: Filtrovanie zoznamu v jazyku Java pomocou metódy „filter()“.
The 'filter()' metóda sa používa na filtrovanie prvkov prúdu na základe daného predikátu. Táto metóda sa dá použiť na filtrovanie prúdu zoznamov.
Syntax
Prúd < X > filter ( Predikát Super X > pred )V tejto syntaxi „ pred “ zodpovedá „ Predikát “, ktorý môže brať výraz lambda ako argument.
Príklad
Zvážte nasledujúci kód:
verejnosti trieda Zoznam filtrov2 {verejnosti statické neplatné Hlavná ( Reťazec [ ] args ) {
Zoznam < Reťazec > danýZoznam = Polia . asList ( 'Mobilné' , 'prenosný počítač' , 'PC' ) ;
systém . von . println ( 'Daný zoznam ->' + danýZoznam ) ;
Reťazec listFilter = danýZoznam. Prúd ( ) . filter ( položka -> položka. začína s ( 'M' ) )
. zbierať ( Zberatelia. spájanie ( ',' , '[' , ']' ) ) ;
systém . von . println ( 'Filtrovaný zoznam ->' + listFilter ) ;
} }
V týchto riadkoch kódu:
- Podobne vytvorte „ Zoznam “ a zobrazte jej hodnoty.
- Potom použite „ filter() ” metóda na filtrovanie prvkov streamu v zozname na základe diskutovanej podmienky a špecifikovanie konvencií pre obsiahnutie filtrovaných položiek pomocou “ Zberatelia “ triedy, resp.
- Nakoniec vráťte filtrovaný zoznam.
Výkon
V tomto výsledku možno naznačiť, že sa pripojí nový zoznam s hodnotou, ktorá spĺňa uvedenú podmienku.
Záver
Zoznam v jazyku Java je možné filtrovať pomocou „ cyklus for“, cyklus „while“ alebo „filter() “. Všetky tieto prístupy filtrujú zoznam na základe špecifikovanej podmienky priamo alebo prostredníctvom výrazu lambda. Tento článok demonštroval prístupy k filtrovaniu zoznamu Java.