' Filtrering av en liste ” i Java er nyttig for utviklere som stort sett jobber med data. Den trer i kraft mens du oppdaterer kodefunksjonene, sletter postene eller bruker de inneholdte dataene i en egen liste. I slike scenarier er listefiltreringstilnærmingen til hjelp for å administrere både tid og minne effektivt hos utviklerne.
Denne bloggen vil veilede hvordan du filtrerer en Java-liste.
Hva er prosessen for å filtrere en Java-liste?
En liste i Java kan filtreres ved å bruke følgende tilnærminger:
Importer pakken nedenfor i alle eksemplene på denne bloggen for å få tilgang til alle funksjonene i ' java.util ' pakke:
import java.util.* ;
Tilnærming 1: Filtrer en liste i Java ved å bruke 'for'-løkken
Denne tilnærmingen bruker ' til ' løkke på den opprettede 'Listen' slik at en ny ' ArrayList ' legges til med de filtrerte elementene.
Eksempel
Oversikt over de nedenfor angitte kodelinjene:
offentlig klasse Filterliste {offentlig statisk tomrom hoved- ( String [ ] args ) {
Liste < String > gitt Liste = Matriser . asList ( 'Penn' , 'Viskelær' , 'Sliper' ) ;
System . ute . println ( 'gitt liste -> ' + gitt Liste ) ;
Liste < String > listeFilter = ny ArrayList <> ( ) ;
til ( String punkt : gitt Liste ) {
hvis ( punkt. begynner med ( 'OG' ) ) {
listeFilter. Legg til ( punkt ) ;
} }
System . ute . println ( 'Filtrert liste -> ' + listeFilter ) ;
} }
I henhold til denne kodeblokken:
- Lag en liste over ' String ” datatyper som har de angitte strengverdiene og viser den.
- Etter det oppretter du en ny ' ArrayList 'navngitt' listeFilter ' for å legge til elementene filtrert fra den tidligere listen.
- Bruk nå ' til ' løkke for å iterere langs den definerte første listen og filtrere den basert på den anvendte betingelsen, dvs. element(er) som starter med tegnet ' OG '.
- Når betingelsen er oppfylt, blir den filtrerte listen vedlagt den bestemte strengen.
Produksjon
Som det fremgår, blir den filtrerte listen lagt til strengen som oppfyller den anvendte betingelsen.
Tilnærming 2: Filtrer en liste i Java ved å bruke 'while'-løkken
I denne tilnærmingen er ' samtidig som '-sløyfe kan implementeres sammen med ' Iterator '-klassen og dens metoder for å filtrere den angitte listen. Disse metodene inkluderer ' hasNext()' og 'neste() ” metoder som påkaller neste verdi fra listen hvis det er noen.
Syntaks
boolsk har Neste ( )Denne metoden returnerer et boolsk utfall, dvs. 'sant eller usant' .
offentlig En neste ( )Her, ' EN ' tilsvarer ' Iterator-grensesnitt '.
Eksempel
Fortsett nå til følgende kode:
offentlig klasse Filterliste {offentlig statisk tomrom hoved- ( String [ ] args ) {
Liste < String > gitt Liste = ny ArrayList <> (
Matriser . asList ( 'Java' , 'Programmering' , 'i' , 'Linux' ) ) ;
System . ute . println ( 'gitt liste -> ' + gitt Liste ) ;
Iterator < String > iterasjon = gitt Liste. iterator ( ) ;
samtidig som ( iterasjon. har Neste ( ) ) {
String curr = iterasjon. neste ( ) ;
hvis ( curr. begynner med ( 'P' ) ) {
iterasjon. fjerne ( ) ;
} }
System . ute . println ( 'Filtrert liste -> ' + gitt Liste ) ;
} }
I henhold til koden ovenfor:
- Lag en ' ArrayList ' av ' String ' skriv med de angitte verdiene og vis den.
- Gå nå gjennom listeelementene via ' Iterator ' klasse.
- Bruk også ' samtidig som '-sløyfe for å sjekke om det er et neste element i listen via ' hasNext() '-metoden og hente den basert på den anvendte ' neste() 'metoden.
- Sjekk nå om det itererte elementet i listen tilfredsstilte den angitte betingelsen, som diskutert i forrige eksempel.
- Når betingelsen er oppfylt, fjernes det aktuelle elementet i stedet og listen filtreres.
Produksjon
Som analysert, fjernes elementet som oppfyller den angitte betingelsen fra listen på riktig måte.
Inkluder tilleggspakken nedenfor i neste tilnærming for å tillate arbeid med ' Samlere ' klasse:
import java.util.stream.Collectors ;Tilnærming 3: Filtrer en liste i Java ved å bruke 'filter()'-metoden
De 'filter()' metoden brukes til å filtrere strømelementer basert på det gitte predikatet. Denne metoden kan brukes til å filtrere en strøm av lister.
Syntaks
Strøm < X > filter ( Predikat super X > før )I denne syntaksen ' før ' tilsvarer ' Predikat ” som kan ta et lambda-uttrykk som et argument.
Eksempel
Tenk på følgende kode:
offentlig klasse Filterliste2 {offentlig statisk tomrom hoved- ( String [ ] args ) {
Liste < String > gitt Liste = Matriser . asList ( 'Mobil' , 'Laptop' , 'PC' ) ;
System . ute . println ( 'gitt liste -> ' + gitt Liste ) ;
String listeFilter = gitt Liste. strøm ( ) . filter ( punkt -> punkt. begynner med ( 'M' ) )
. samle inn ( Samlere. bli med ( ', ' , '[' , ']' ) ) ;
System . ute . println ( 'Filtrert liste -> ' + listeFilter ) ;
} }
I disse kodelinjene:
- På samme måte oppretter du en ' Liste ” og vise verdiene.
- Etter det, bruk ' filter() '-metoden for å filtrere strømelementene i listen basert på den diskuterte tilstanden og spesifisere konvensjonene for å inneholde de filtrerte elementene via ' Samlere ' klasse, henholdsvis.
- Til slutt, returner den filtrerte listen.
Produksjon
I dette utfallet kan det antydes at en ny liste er vedlagt med verdien som tilfredsstiller den angitte betingelsen.
Konklusjon
En liste i Java kan filtreres ved å bruke ' for'-løkken, 'while'-løkken eller 'filter() 'metoden. Alle disse tilnærmingene filtrerer en liste basert på en spesifisert tilstand direkte eller via lambda-uttrykket. Denne artikkelen demonstrerte fremgangsmåtene for å filtrere en Java-liste.