“ Filtrering af en liste ” i Java er praktisk for udviklere, der mest arbejder med data. Den træder i kraft, mens kodefunktionerne opdateres, slettes posterne eller ved brug af de indeholdte data på en separat liste. I sådanne scenarier er listefiltreringstilgangen en hjælp til at administrere både tid og hukommelse effektivt hos udviklerne.
Denne blog guider til at filtrere en Java-liste.
Hvad er processen for at filtrere en Java-liste?
En liste i Java kan filtreres ved hjælp af følgende fremgangsmåder:
Importer nedenstående pakke i alle eksemplerne på denne blog for at få adgang til alle funktionerne i ' java.util ' pakke:
importere java.util.* ;
Fremgangsmåde 1: Filtrer en liste i Java ved hjælp af 'for'-løkken
Denne tilgang anvender ' til ' sløjfe på den oprettede 'Liste', således at en ny ' ArrayList ” er tilføjet det eller de filtrerede elementer.
Eksempel
Oversigt over nedenstående kodelinjer:
offentlig klasse Filterliste {offentlig statisk ugyldig vigtigste ( Snor [ ] args ) {
Liste < Snor > givenList = Arrays . asList ( 'Pen' , 'Viskelæder' , 'Skærper' ) ;
System . ud . println ( 'Given liste ->' + givenList ) ;
Liste < Snor > listeFilter = ny ArrayList <> ( ) ;
til ( Snor vare : givenList ) {
hvis ( vare. starter med ( 'OG' ) ) {
listeFilter. tilføje ( vare ) ;
} }
System . ud . println ( 'Filtreret liste -> ' + listeFilter ) ;
} }
Ifølge denne kodeblok:
- Opret en liste over ' Snor ” datatyper med de angivne strengværdier og vise det.
- Derefter skal du oprette en ny ' ArrayList ' som hedder ' listeFilter ” for at tilføje den med de elementer, der er filtreret fra den tidligere liste.
- Anvend nu ' til ” sløjfe for at iterere langs den definerede første liste og filtrere den baseret på den anvendte betingelse, dvs. elementer, der starter med tegnet “ OG ”.
- Når betingelsen er opfyldt, bliver den filtrerede liste tilføjet den bestemte streng.
Produktion
Som det ses, er den filtrerede liste tilføjet den streng, der opfylder den anvendte betingelse.
Fremgangsmåde 2: Filtrer en liste i Java ved hjælp af 'while'-løkken
I denne tilgang er ' mens ”-løkke kan implementeres sammen med ” Iterator ” klasse og dens metoder til at filtrere den angivne liste. Disse metoder omfatter ' hasNext()' og 'next() ” metoder, der kalder den næste værdi fra listen, hvis der er nogen.
Syntaks
boolesk har Næste ( )Denne metode returnerer et boolsk resultat, dvs. 'sandt eller falsk' .
offentlig En næste ( )Her, ' EN ' svarer til ' Iterator interface ”.
Eksempel
Fortsæt nu til følgende kode:
offentlig klasse Filterliste {offentlig statisk ugyldig vigtigste ( Snor [ ] args ) {
Liste < Snor > givenList = ny ArrayList <> (
Arrays . asList ( 'Java' , 'Programmering' , 'i' , 'Linux' ) ) ;
System . ud . println ( 'Given liste ->' + givenList ) ;
Iterator < Snor > iteration = givenList. iterator ( ) ;
mens ( iteration. har Næste ( ) ) {
Snor curr = iteration. Næste ( ) ;
hvis ( curr. starter med ( 'P' ) ) {
iteration. fjerne ( ) ;
} }
System . ud . println ( 'Filtreret liste -> ' + givenList ) ;
} }
I henhold til ovenstående kode:
- Opret en ' ArrayList ' af ' Snor ” skriv med de angivne værdier og vis det.
- Gentag nu listeelementerne via ' Iterator ' klasse.
- Anvend også ' mens ”-løkke for at kontrollere, om der er et næste element på listen via hasNext() ”-metoden og hent den ud fra den anvendte ” Næste() ” metode.
- Tjek nu, om det itererede element i listen opfyldte den angivne betingelse, som diskuteret i det foregående eksempel.
- Når betingelsen er opfyldt, fjernes det pågældende element i stedet, og listen filtreres.
Produktion
Som analyseret fjernes elementet, der opfylder den angivne betingelse, fra listen på passende vis.
Inkluder den nedenfor angivne ekstra pakke i den næste tilgang for at tillade arbejde med ' Samlere ' klasse:
importere java.util.stream.Collectors ;Fremgangsmåde 3: Filtrer en liste i Java ved hjælp af 'filter()'-metoden
Det 'filter()' metode bruges til at filtrere strømelementer baseret på det givne prædikat. Denne metode kan bruges til at filtrere en strøm af lister.
Syntaks
Strøm < x > filter ( Prædikat super x > Før )I denne syntaks, ' Før ' svarer til ' Prædikat ” der kan tage et lambda-udtryk som et argument.
Eksempel
Overvej følgende kode:
offentlig klasse Filterliste 2 {offentlig statisk ugyldig vigtigste ( Snor [ ] args ) {
Liste < Snor > givenList = Arrays . asList ( 'Mobil' , 'Bærbar' , 'PC' ) ;
System . ud . println ( 'Given liste ->' + givenList ) ;
Snor listeFilter = givenList. strøm ( ) . filter ( vare -> vare. starter med ( 'M' ) )
. indsamle ( Samlere. tilslutte sig ( ', ' , '[' , ']' ) ) ;
System . ud . println ( 'Filtreret liste -> ' + listeFilter ) ;
} }
I disse kodelinjer:
- Ligeledes skal du oprette en ' Liste ” og vise dens værdier.
- Brug derefter ' filter() ' metode til at filtrere strømelementerne i listen baseret på den diskuterede tilstand og specificere konventionerne for at indeholde de filtrerede elementer via ' Samlere henholdsvis ”klasse.
- Til sidst returnerer du den filtrerede liste.
Produktion
I dette resultat kan det antydes, at der tilføjes en ny liste med værdien, der opfylder den angivne betingelse.
Konklusion
En liste i Java kan filtreres ved at bruge ' for'-løkken, 'mens'-løkken eller 'filter() ” metode. Alle disse tilgange filtrerer en liste baseret på en specificeret betingelse direkte eller via lambda-udtrykket. Denne artikel demonstrerede fremgangsmåderne til at filtrere en Java-liste.