' Listan suodattaminen ” Javassa on kätevä kehittäjille, jotka työskentelevät enimmäkseen datan kanssa. Se tulee voimaan päivitettäessä koodin toimintoja, poistettaessa tietueita tai hyödynnettäessä sisältämiä tietoja erillisessä listassa. Tällaisissa skenaarioissa luettelosuodatusmenetelmä auttaa hallitsemaan sekä aikaa että muistia tehokkaasti kehittäjien lopussa.
Tämä blogi opastaa Java-luettelon suodattamiseen.
Mikä on Java-luettelon suodatusprosessi?
Java-luettelo voidaan suodattaa seuraavilla tavoilla:
Tuo alla annettu paketti kaikissa tämän blogin esimerkeissä päästäksesi kaikkiin ' java.util 'paketti:
tuonti java.util.* ;
Lähestymistapa 1: Suodata luettelo Javassa käyttämällä 'for' -silmukkaa
Tämä lähestymistapa soveltaa ' varten ' kiertää luotua 'Listaa' siten, että uusi ' ArrayList ' on liitetty suodatettujen kohteiden kanssa.
Esimerkki
Yleiskatsaus alla oleviin koodiriveihin:
julkinen luokkaa Suodatinlista {julkinen staattinen mitätön pää ( merkkijono [ ] args ) {
Lista < merkkijono > annettuLista = Taulukot . kutenList ( 'Kynä' , 'Pyyhekumi' , 'Teroitin' ) ;
Järjestelmä . ulos . println ( 'Annettu lista ->' + annettuLista ) ;
Lista < merkkijono > listFilter = Uusi ArrayList <> ( ) ;
varten ( merkkijono kohde : annettuLista ) {
jos ( kohde. alkaa kanssa ( 'JA' ) ) {
listFilter. lisätä ( kohde ) ;
} }
Järjestelmä . ulos . println ( 'Suodatettu lista ->' + listFilter ) ;
} }
Tämän koodilohkon mukaan:
- Luo luettelo ' merkkijono ” tietotyypit, joilla on ilmoitetut merkkijonoarvot, ja näytä se.
- Luo sen jälkeen uusi ' ArrayList 'nimeltään' listFilter ' lisätäksesi sen edellisestä luettelosta suodatetuilla kohteilla.
- Käytä nyt ' varten ' silmukka iteroidaksesi määritettyä ensimmäistä luetteloa pitkin ja suodattaa se sovelletun ehdon perusteella, eli alkioiden perusteella, jotka alkavat merkillä ' JA ”.
- Kun ehto täyttyy, suodatettu luettelo liitetään tietyllä merkkijonolla.
Lähtö
Kuten näet, suodatettu luettelo on liitetty merkkijonolla, joka täyttää sovelletun ehdon.
Lähestymistapa 2: Suodata luettelo Javassa 'while'-silmukan avulla
Tässä lähestymistavassa ' sillä aikaa 'silmukka voidaan toteuttaa yhdessä ' Iteraattori ”-luokka ja sen menetelmät tarjotun luettelon suodattamiseksi. Näitä menetelmiä ovat mm. hasNext()' ja 'seuraava() ” -menetelmiä, jotka kutsuvat seuraavan arvon luettelosta, jos sellainen on.
Syntaksi
boolean hasNext ( )Tämä menetelmä palauttaa loogisen tuloksen, ts. 'totta vai tarua' .
julkinen Seuraava ( )Täällä, ' A ' vastaa ' Iteraattorin käyttöliittymä ”.
Esimerkki
Jatka nyt seuraavaan koodiin:
julkinen luokkaa Suodatinlista {julkinen staattinen mitätön pää ( merkkijono [ ] args ) {
Lista < merkkijono > annettuLista = Uusi ArrayList <> (
Taulukot . kutenList ( 'Java' , 'Ohjelmointi' , 'sisään' , 'Linux' ) ) ;
Järjestelmä . ulos . println ( 'Annettu lista ->' + annettuLista ) ;
Iteraattori < merkkijono > iterointi = annettu Lista. iteraattori ( ) ;
sillä aikaa ( iterointi. hasNext ( ) ) {
merkkijono curr = iterointi. Seuraava ( ) ;
jos ( curr. alkaa kanssa ( 'P' ) ) {
iterointi. Poista ( ) ;
} }
Järjestelmä . ulos . println ( 'Suodatettu lista ->' + annettu Lista ) ;
} }
Yllä olevan koodin mukaan:
- Luo ' ArrayList '/' merkkijono kirjoita annetut arvot ja näytä se.
- Toista nyt luetteloelementit ' Iteraattori ”luokka.
- Käytä myös ' sillä aikaa ' -silmukka tarkistaaksesi, onko luettelossa seuraava elementti '' hasNext() ' -menetelmää ja noutaa se käytetyn ' Seuraava() ”menetelmä.
- Tarkista nyt, täyttikö luettelon iteroitu elementti asetetun ehdon, kuten edellisessä esimerkissä käsiteltiin.
- Kun ehto täyttyy, kyseinen elementti poistetaan sen sijaan ja luettelo suodatetaan.
Lähtö
Kuten analysoidaan, määritetyn ehdon täyttävä elementti poistetaan luettelosta asianmukaisesti.
Sisällytä alla annettu lisäpaketti seuraavaan lähestymistapaan, jotta voit työskennellä ' Keräilijät ”luokka:
tuonti java.util.stream.Collectors ;Lähestymistapa 3: Suodata luettelo Javassa käyttämällä 'filter()'-menetelmää
The 'suodattaa()' menetelmää käytetään suodattamaan stream-elementtejä annetun predikaatin perusteella. Tätä menetelmää voidaan käyttää luettelovirran suodattamiseen.
Syntaksi
Striimaa < X > suodattaa ( Predikaatti super X > ennen )Tässä syntaksissa ' ennen ' vastaa ' Predikaatti ', joka voi ottaa lambda-lausekkeen argumenttina.
Esimerkki
Harkitse seuraavaa koodia:
julkinen luokkaa Suodatinlista2 {julkinen staattinen mitätön pää ( merkkijono [ ] args ) {
Lista < merkkijono > annettu Lista = Taulukot . kutenList ( 'mobiili' , 'kannettava' , 'PC' ) ;
Järjestelmä . ulos . println ( 'Annettu lista ->' + annettu Lista ) ;
merkkijono listFilter = annettuLista. virta ( ) . suodattaa ( kohde -> kohde. alkaa kanssa ( 'M' ) )
. kerätä ( Keräilijät. liittyminen ( ', ' , '[' , ']' ) ) ;
Järjestelmä . ulos . println ( 'Suodatettu luettelo ->' + listFilter ) ;
} }
Näillä koodiriveillä:
- Luo samalla tavalla ' Lista ' ja näyttää sen arvot.
- Käytä sen jälkeen ' suodattaa() ' -menetelmää suodattaaksesi luettelon stream-elementit käsitellyn ehdon perusteella ja määrittää käytännöt suodatettujen kohteiden sisällyttämiselle ' Keräilijät ” luokkaa.
- Palauta lopuksi suodatettu luettelo.
Lähtö
Tässä tuloksessa voidaan viitata siihen, että uusi lista on liitetty arvoon, joka täyttää esitetyn ehdon.
Johtopäätös
Java-luettelo voidaan suodattaa käyttämällä ' for'-silmukka, 'while'-silmukka tai 'filter() ”menetelmä. Kaikki nämä lähestymistavat suodattavat luettelon tietyn ehdon perusteella suoraan tai lambda-lausekkeen kautta. Tämä artikkeli esitteli lähestymistapoja Java-luettelon suodattamiseen.