Qual è il processo per filtrare un elenco in Java

Qual E Il Processo Per Filtrare Un Elenco In Java



Filtraggio di un elenco ” in Java è utile per gli sviluppatori che lavorano principalmente con i dati. Entra in vigore durante l'aggiornamento delle funzionalità del codice, l'eliminazione dei record o l'utilizzo dei dati contenuti in un elenco separato. In tali scenari, l'approccio del filtraggio degli elenchi è di aiuto nella gestione efficace sia del tempo che della memoria da parte degli sviluppatori.

Questo blog guiderà a filtrare un elenco Java.







Qual è il processo per filtrare un elenco Java?

Un elenco in Java può essere filtrato utilizzando i seguenti approcci:



Importa il pacchetto sotto indicato in tutti gli esempi di questo blog per accedere a tutte le funzionalità all'interno del ' java.util ' pacchetto:



importare java.util.* ;

Approccio 1: filtrare un elenco in Java utilizzando il ciclo 'for'.

Questo approccio applica il “ per ” loop sulla “Lista” creata in modo tale che un nuovo “ Lista di array ” viene aggiunto con gli elementi filtrati.





Esempio

Panoramica delle righe di codice indicate di seguito:

pubblico classe Elenco filtri {
pubblico statico vuoto principale ( Corda [ ] arg ) {
Elenco < Corda > dataList = Array . asList ( 'Penna' , 'Gomma per cancellare' , 'Temperamatite' ) ;
Sistema . fuori . println ( 'Elenco fornito -> ' + dataList ) ;
Elenco < Corda > listFilter = nuovo Lista di array <> ( ) ;
per ( Corda articolo : dataList ) {
Se ( articolo. inizia con ( 'E' ) ) {
listFilter. aggiungere ( articolo ) ;
} }
Sistema . fuori . println ( 'Elenco filtrato -> ' + listFilter ) ;
} }

Secondo questo blocco di codice:



  • Crea un elenco di ' Corda ” tipi di dati con i valori di stringa indicati e li visualizzano.
  • Successivamente, crea un nuovo ' Lista di array ' di nome ' listFilter ” per aggiungerlo agli elementi filtrati dall'elenco precedente.
  • Ora, applica il ' per ” loop per iterare lungo il primo elenco definito e filtrarlo in base alla condizione applicata, ad esempio elementi che iniziano con il carattere “ E ”.
  • Alla condizione soddisfatta, l'elenco filtrato viene aggiunto con la stringa specifica.

Produzione

Come visto, all'elenco filtrato viene aggiunta la stringa che soddisfa la condizione applicata.

Approccio 2: filtrare un elenco in Java utilizzando il ciclo 'while'.

In questo approccio, il “ Mentre ” loop può essere implementato insieme al “ Iteratore ” e i relativi metodi per filtrare l'elenco fornito. Questi metodi includono il ' hasNext()” e “next() ” metodi che richiamano il valore successivo dall'elenco, se presente.

Sintassi

booleano hasNext ( )

Questo metodo restituisce un risultato booleano, ad esempio, 'vero o falso' .

pubblico Un prossimo ( )

Qui, ' UN ” corrisponde a “ Interfaccia iteratore ”.

Esempio

Ora, procedi al seguente codice:

pubblico classe Elenco filtri {
pubblico statico vuoto principale ( Corda [ ] arg ) {
Elenco < Corda > dataList = nuovo Lista di array <> (
Array . asList ( 'Giava' , 'Programmazione' , 'In' , 'Linux' ) ) ;
Sistema . fuori . println ( 'Elenco fornito -> ' + dataList ) ;
Iteratore < Corda > iterazione = dataList. iteratore ( ) ;
Mentre ( iterazione. hasNext ( ) ) {
Corda corr = iterazione. Prossimo ( ) ;
Se ( corr. inizia con ( 'P' ) ) {
iterazione. rimuovere ( ) ;
} }
Sistema . fuori . println ( 'Elenco filtrato -> ' + dataList ) ;
} }

Secondo il codice sopra:

  • Creare un ' Lista di array ” del “ Corda ” digitare con i valori forniti e visualizzarlo.
  • Ora, scorrere gli elementi dell'elenco tramite il ' Iteratore ' classe.
  • Inoltre, applica il ' Mentre ” loop per controllare se c'è un elemento successivo nell'elenco tramite il “ haSuccessivo() 'metodo e recuperarlo in base all'applicazione' Prossimo() ' metodo.
  • Ora, controlla se l'elemento iterato nell'elenco ha soddisfatto la condizione dichiarata, come discusso nell'esempio precedente.
  • Alla condizione soddisfatta, quel particolare elemento viene invece rimosso e l'elenco viene filtrato.

Produzione

Come analizzato, l'elemento che soddisfa la condizione specificata viene rimosso dall'elenco in modo appropriato.

Includere il pacchetto aggiuntivo indicato di seguito nel prossimo approccio per consentire di lavorare con ' Collezionisti ' classe:

importare java.util.stream.Collectors ;

Approccio 3: filtrare un elenco in Java utilizzando il metodo 'filter ()'.

IL 'filtro()' Il metodo viene utilizzato per filtrare gli elementi del flusso in base al predicato specificato. Questo metodo può essere utilizzato per filtrare un flusso di elenchi.

Sintassi

Flusso < X > filtro ( Predicato super X > Prima )

In questa sintassi, “ Prima ” corrisponde a “ Predicato ” che può prendere come argomento un'espressione lambda.

Esempio

Considera il seguente codice:

pubblico classe Elenco filtri2 {
pubblico statico vuoto principale ( Corda [ ] arg ) {
Elenco < Corda > dataList = Array . asList ( 'Mobile' , 'Computer portatile' , 'PC' ) ;
Sistema . fuori . println ( 'Elenco fornito -> ' + dataList ) ;
Corda listFilter = dataList. flusso ( ) . filtro ( articolo -> articolo. inizia con ( 'M' ) )
. raccogliere ( Collezionisti. unendo ( ',' , '[' , ']' ) ) ;
Sistema . fuori . println ( 'Elenco filtrato -> ' + listFilter ) ;
} }

In queste righe di codice:

  • Allo stesso modo, crea un ' Elenco ” e visualizzarne i valori.
  • Successivamente, utilizzare il ' filtro() ” per filtrare gli elementi del flusso nell'elenco in base alla condizione discussa e specificare le convenzioni per contenere gli elementi filtrati tramite il metodo “ Collezionisti ” classe, rispettivamente.
  • Infine, restituisci l'elenco filtrato.

Produzione

In questo risultato, può essere implicito che venga aggiunto un nuovo elenco con il valore che soddisfa la condizione dichiarata.

Conclusione

Un elenco in Java può essere filtrato utilizzando il ' for', il ciclo 'while' o il ciclo 'filter() ' metodo. Tutti questi approcci filtrano un elenco in base a una condizione specificata direttamente o tramite l'espressione lambda. Questo articolo ha illustrato gli approcci per filtrare un elenco Java.