“ Filtrování seznamu ” v Javě je užitečný pro vývojáře, kteří většinou pracují s daty. Vstoupí v platnost při aktualizaci funkcí kódu, mazání záznamů nebo využití obsažených dat v samostatném seznamu. V takových scénářích je přístup filtrování seznamů nápomocný při efektivní správě času i paměti na konci vývojářů.
Tento blog vás provede filtrováním seznamu Java.
Jaký je proces filtrování seznamu Java?
Seznam v Javě lze filtrovat pomocí následujících přístupů:
Importujte níže uvedený balíček ve všech příkladech tohoto blogu, abyste získali přístup ke všem funkcím v rámci „ java.util ” balíček:
import java.util.* ;
Přístup 1: Filtrujte seznam v Javě pomocí smyčky „for“.
Tento přístup uplatňuje „ pro smyčka 'seznam' na vytvořeném 'seznamu' tak, že nový ' ArrayList ” je připojen k filtrovaným položkám.
Příklad
Přehled níže uvedených řádků kódu:
veřejnost třída Seznam filtrů {veřejnost statický prázdnota hlavní ( Tětiva [ ] argumenty ) {
Seznam < Tětiva > danýSeznam = Pole . asList ( 'Pero' , 'Guma' , 'Ořezávátko' ) ;
Systém . ven . println ( 'Daný seznam ->' + danýSeznam ) ;
Seznam < Tětiva > listFilter = Nový ArrayList <> ( ) ;
pro ( Tětiva položka : danýSeznam ) {
-li ( položka. začíná s ( 'A' ) ) {
listFilter. přidat ( položka ) ;
} }
Systém . ven . println ( 'Filtrovaný seznam ->' + listFilter ) ;
} }
Podle tohoto bloku kódu:
- Vytvořte seznam „ Tětiva ” datové typy s uvedenými řetězcovými hodnotami a zobrazí je.
- Poté vytvořte nový „ ArrayList “ s názvem “ listFilter ” a připojte jej k položkám filtrovaným z předchozího seznamu.
- Nyní použijte „ pro ” smyčka pro iteraci podél definovaného prvního seznamu a jeho filtrování na základě použité podmínky, tj. položek začínajících znakem “ A “.
- Po splnění podmínky se k filtrovanému seznamu připojí konkrétní řetězec.
Výstup
Jak je vidět, k filtrovanému seznamu je připojen řetězec, který splňuje použitou podmínku.
Přístup 2: Filtrujte seznam v Javě pomocí smyčky „while“.
V tomto přístupu „ zatímco “ smyčka může být implementována spolu s “ Iterátor ” a její metody pro filtrování poskytnutého seznamu. Mezi tyto metody patří „ hasNext()“ a „next() ” metody, které vyvolají další hodnotu ze seznamu, pokud nějaká existuje.
Syntax
booleovský hasNext ( )Tato metoda vrací booleovský výsledek, tj. 'pravda nebo lež' .
veřejnost Další ( )Tady, ' A “ odpovídá „ Rozhraní iterátoru “.
Příklad
Nyní přejděte k následujícímu kódu:
veřejnost třída Seznam filtrů {veřejnost statický prázdnota hlavní ( Tětiva [ ] argumenty ) {
Seznam < Tětiva > danýSeznam = Nový ArrayList <> (
Pole . asList ( 'Jáva' , 'programování' , 'v' , 'linux' ) ) ;
Systém . ven . println ( 'Daný seznam ->' + danýSeznam ) ;
Iterátor < Tětiva > opakování = danýSeznam. iterátor ( ) ;
zatímco ( opakování. hasNext ( ) ) {
Tětiva curr = opakování. další ( ) ;
-li ( curr. začíná s ( 'P' ) ) {
opakování. odstranit ( ) ;
} }
Systém . ven . println ( 'Filtrovaný seznam ->' + danýSeznam ) ;
} }
Podle výše uvedeného kódu:
- Vytvořte „ ArrayList “ z “ Tětiva ” zadejte s poskytnutými hodnotami a zobrazte je.
- Nyní iterujte prvky seznamu pomocí „ Iterátor “třída.
- Aplikujte také „ zatímco smyčka “, abyste zkontrolovali, zda je v seznamu další prvek pomocí tlačítka “ hasNext() “ metodu a načtěte ji na základě použité “ další() “ metoda.
- Nyní zkontrolujte, zda iterovaný prvek v seznamu splňuje uvedenou podmínku, jak je uvedeno v předchozím příkladu.
- Po splnění podmínky je daný prvek místo toho odstraněn a seznam je filtrován.
Výstup
Při analýze je prvek splňující zadanou podmínku náležitě odstraněn ze seznamu.
Do dalšího přístupu zahrňte níže uvedený dodatečný balíček, abyste mohli pracovat s „ Sběratelé “třída:
import java.util.stream.kolektory ;Přístup 3: Filtrujte seznam v Javě pomocí metody „filter()“.
The 'filtr()' metoda se používá k filtrování prvků proudu na základě daného predikátu. Tuto metodu lze použít k filtrování proudu seznamů.
Syntax
Proud < X > filtr ( Predikát super X > před )V této syntaxi „ před “ odpovídá „ Predikát “, který může brát výraz lambda jako argument.
Příklad
Zvažte následující kód:
veřejnost třída Seznam filtrů 2 {veřejnost statický prázdnota hlavní ( Tětiva [ ] argumenty ) {
Seznam < Tětiva > danýSeznam = Pole . asList ( 'Mobilní, pohybliví' , 'laptop' , 'PC' ) ;
Systém . ven . println ( 'Daný seznam ->' + danýSeznam ) ;
Tětiva listFilter = danýSeznam. proud ( ) . filtr ( položka -> položka. začíná s ( 'M' ) )
. sbírat ( Sběratelé. spojování ( ',' , '[' , ']' ) ) ;
Systém . ven . println ( 'Filtrovaný seznam ->' + listFilter ) ;
} }
V těchto řádcích kódu:
- Podobně vytvořte „ Seznam “ a zobrazte jeho hodnoty.
- Poté použijte „ filtr() ” metoda pro filtrování prvků streamu v seznamu na základě diskutované podmínky a specifikování konvencí pro obsažení filtrovaných položek pomocí “ Sběratelé “ třídy, resp.
- Nakonec vraťte filtrovaný seznam.
Výstup
V tomto výsledku lze naznačit, že je připojen nový seznam s hodnotou splňující uvedenou podmínku.
Závěr
Seznam v Javě lze filtrovat pomocí „ cyklus for“, cyklus „while“ nebo „filter() “ metoda. Všechny tyto přístupy filtrují seznam na základě zadané podmínky přímo nebo prostřednictvím výrazu lambda. Tento článek demonstroval přístupy k filtrování seznamu Java.