logo

Filtro flusso Java

Il flusso Java fornisce un metodo filter() per filtrare gli elementi del flusso sulla base di un determinato predicato. Supponiamo che tu voglia ottenere solo elementi pari del tuo elenco, puoi farlo facilmente con l'aiuto del metodo filtro.

carattere gimp

Questo metodo accetta il predicato come argomento e restituisce un flusso composto da elementi risultanti.


Firma

La firma del metodo Stream filter() è riportata di seguito:

 Stream filter(Predicate predicate) 

Parametro

predicato: Prende il riferimento al predicato come argomento. Il predicato è un'interfaccia funzionale. Quindi puoi anche passare qui l'espressione lambda.

Ritorno

Restituisce un nuovo flusso.


Esempio di filtro Java Stream()

Nell'esempio seguente, stiamo recuperando e iterando i dati filtrati.

 import java.util.*; class Product{ int id; String name; float price; public Product(int id, String name, float price) { this.id = id; this.name = name; this.price = price; } } public class JavaStreamExample { public static void main(String[] args) { List productsList = new ArrayList(); //Adding Products productsList.add(new Product(1,'HP Laptop',25000f)); productsList.add(new Product(2,'Dell Laptop',30000f)); productsList.add(new Product(3,'Lenevo Laptop',28000f)); productsList.add(new Product(4,'Sony Laptop',28000f)); productsList.add(new Product(5,'Apple Laptop',90000f)); productsList.stream() .filter(p ->p.price> 30000) // filtering price .map(pm ->pm.price) // fetching price .forEach(System.out::println); // iterating price } } 

Produzione:

java int per raddoppiare
 90000.0 

Filtro Java Stream() esempio 2

Nell'esempio seguente, recuperiamo i dati filtrati come elenco.

 import java.util.*; import java.util.stream.Collectors; class Product{ int id; String name; float price; public Product(int id, String name, float price) { this.id = id; this.name = name; this.price = price; } } public class JavaStreamExample { public static void main(String[] args) { List productsList = new ArrayList(); //Adding Products productsList.add(new Product(1,'HP Laptop',25000f)); productsList.add(new Product(2,'Dell Laptop',30000f)); productsList.add(new Product(3,'Lenevo Laptop',28000f)); productsList.add(new Product(4,'Sony Laptop',28000f)); productsList.add(new Product(5,'Apple Laptop',90000f)); List pricesList = productsList.stream() .filter(p ->p.price> 30000) // filtering price .map(pm ->pm.price) // fetching price .collect(Collectors.toList()); System.out.println(pricesList); } } 

Produzione:

 [90000.0]