Wat is het proces om een ​​lijst in Java te filteren

Wat Is Het Proces Om Een Lijst In Java Te Filteren



Een lijst filteren ” in Java is handig voor ontwikkelaars die vooral met data werken. Het wordt van kracht tijdens het bijwerken van de codefunctionaliteiten, het verwijderen van de records of het gebruik van de ingesloten gegevens in een afzonderlijke lijst. In dergelijke scenario's helpt de lijstfilterbenadering bij het effectief beheren van zowel de tijd als het geheugen aan het einde van de ontwikkelaars.

Deze blog zal helpen bij het filteren van een Java-lijst.







Wat is het proces om een ​​Java-lijst te filteren?

Een lijst in Java kan op de volgende manieren worden gefilterd:



Importeer het onderstaande pakket in alle voorbeelden van deze blog om toegang te krijgen tot alle functionaliteiten binnen de “ java.util ' pakket:



importeren java.util.* ;

Benadering 1: filter een lijst in Java met behulp van de 'for'-lus

Deze aanpak past de “ voor ' lus op de gemaakte 'Lijst' zodat een nieuwe ' ArrayLijst ” wordt toegevoegd aan het/de gefilterde item(s).





Voorbeeld

Overzicht van de onderstaande regels code:

openbaar klas Filterlijst {
openbaar statisch leegte voornaamst ( Snaar [ ] argumenten ) {
Lijst < Snaar > gegevenLijst = Arrays . alsLijst ( 'Pen' , 'Gom' , 'Slijper' ) ;
Systeem . uit . println ( 'Gegeven lijst -> ' + gegevenLijst ) ;
Lijst < Snaar > lijstFilter = nieuw ArrayLijst <> ( ) ;
voor ( Snaar item : gegevenLijst ) {
als ( item. begint met ( 'EN' ) ) {
lijstFilter. toevoegen ( item ) ;
} }
Systeem . uit . println ( 'Gefilterde lijst -> ' + lijstFilter ) ;
} }

Volgens dit codeblok:



  • Maak een lijst van ' Snaar '-gegevenstypen met de vermelde tekenreekswaarden en geef deze weer.
  • Maak daarna een nieuwe ' ArrayLijst ' genaamd ' lijstFilter ” om het toe te voegen met de items die uit de vorige lijst zijn gefilterd.
  • Pas nu de ' voor ” lus om langs de gedefinieerde eerste lijst te herhalen en deze te filteren op basis van de toegepaste voorwaarde, d.w.z. item(s) beginnend met het teken “ EN ”.
  • Als aan de voorwaarde is voldaan, wordt de gefilterde lijst toegevoegd met de specifieke tekenreeks.

Uitgang

Zoals te zien is, wordt aan de gefilterde lijst de string toegevoegd die voldoet aan de toegepaste voorwaarde.

Benadering 2: filter een lijst in Java met behulp van de 'whis'-lus

Bij deze aanpak is de “ terwijl ” lus kan worden geïmplementeerd samen met de “ Iterator ” klasse en zijn methoden om de verstrekte lijst te filteren. Deze methoden omvatten de ' heeftVolgende()' en 'volgende() ” methoden die de volgende waarde uit de lijst aanroepen als die er is.

Syntaxis

booleaans heeftVolgende ( )

Deze methode retourneert een booleaanse uitkomst, d.w.z. 'waar of niet waar' .

openbaar Een volgende ( )

Hier, ' A ” komt overeen met de “ Iterator-interface ”.

Voorbeeld

Ga nu verder met de volgende code:

openbaar klas Filterlijst {
openbaar statisch leegte voornaamst ( Snaar [ ] argumenten ) {
Lijst < Snaar > gegevenLijst = nieuw ArrayLijst <> (
Arrays . alsLijst ( 'Java' , 'Programmeren' , 'in' , 'Linux' ) ) ;
Systeem . uit . println ( 'Gegeven lijst -> ' + gegevenLijst ) ;
Iterator < Snaar > iteratie = gegevenLijst. iterator ( ) ;
terwijl ( iteratie. heeftVolgende ( ) ) {
Snaar curr = iteratie. volgende ( ) ;
als ( curr. begint met ( 'P' ) ) {
iteratie. verwijderen ( ) ;
} }
Systeem . uit . println ( 'Gefilterde lijst -> ' + gegevenLijst ) ;
} }

Volgens bovenstaande code:

  • Creëer een ' ArrayLijst ' van de ' Snaar ' typ met de opgegeven waarden en geef het weer.
  • Herhaal nu de lijstelementen via de ' Iterator ' klas.
  • Pas ook de “ terwijl ” lus om te controleren of er een volgend element in de lijst is via de “ heeftVolgende() ' methode en haal deze op op basis van de toegepaste ' volgende() ” methode.
  • Controleer nu of het herhaalde element in de lijst voldeed aan de gestelde voorwaarde, zoals besproken in het vorige voorbeeld.
  • Als aan de voorwaarde is voldaan, wordt dat specifieke element in plaats daarvan verwijderd en wordt de lijst gefilterd.

Uitgang

Zoals geanalyseerd, wordt het element dat aan de gespecificeerde voorwaarde voldoet op de juiste manier uit de lijst verwijderd.

Neem het onderstaande aanvullende pakket op in de volgende aanpak om te werken met de ' Verzamelaars ' klas:

importeren java.util.stream.Verzamelaars ;

Benadering 3: filter een lijst in Java met behulp van de 'filter()'-methode

De 'filter()' methode wordt gebruikt om stroomelementen te filteren op basis van het gegeven predikaat. Deze methode kan worden gebruikt om een ​​stroom lijsten te filteren.

Syntaxis

Stroom < X > filter ( Predicaat super X > voor )

In deze syntaxis, ' voor ” komt overeen met de “ Predicaat ” dat een lambda-expressie als argument kan aannemen.

Voorbeeld

Beschouw de volgende code:

openbaar klas Filterlijst2 {
openbaar statisch leegte voornaamst ( Snaar [ ] argumenten ) {
Lijst < Snaar > gegevenLijst = Arrays . alsLijst ( 'Mobiel' , 'Laptop' , 'PC' ) ;
Systeem . uit . println ( 'Gegeven lijst -> ' + gegevenLijst ) ;
Snaar lijstFilter = gegevenLijst. stroom ( ) . filter ( item -> item. begint met ( 'M' ) )
. verzamelen ( Verzamelaars. toetreden ( ', ' , '[' , ']' ) ) ;
Systeem . uit . println ( 'Gefilterde lijst -> ' + lijstFilter ) ;
} }

In deze coderegels:

  • Maak op dezelfde manier een ' Lijst ” en geef de waarden weer.
  • Gebruik daarna de ' filter() ' methode om de stroomelementen in de lijst te filteren op basis van de besproken voorwaarde en specificeer de conventies voor het bevatten van de gefilterde items via de ' Verzamelaars ” klasse, respectievelijk.
  • Retourneer ten slotte de gefilterde lijst.

Uitgang

In deze uitkomst kan worden gesuggereerd dat een nieuwe lijst wordt toegevoegd met de waarde die voldoet aan de gestelde voorwaarde.

Conclusie

Een lijst in Java kan worden gefilterd met behulp van de ' for'-lus, de 'while'-lus of de 'filter() ” methode. Al deze benaderingen filteren een lijst op basis van een opgegeven voorwaarde, rechtstreeks of via de lambda-expressie. Dit artikel demonstreerde de benaderingen om een ​​Java-lijst te filteren.