logo

Filtre de flux de Java

El flux Java proporciona un mètode filter() per filtrar els elements del flux en funció del predicat donat. Suposem que voleu obtenir només elements parells de la vostra llista, podeu fer-ho fàcilment amb l'ajuda del mètode de filtre.

Aquest mètode pren el predicat com a argument i retorna un flux d'elements resultants.


Signatura

La signatura del mètode Stream filter() es mostra a continuació:

 Stream filter(Predicate predicate) 

Paràmetre

predicat: Pren la referència del predicat com a argument. El predicat és una interfície funcional. Per tant, també podeu passar l'expressió lambda aquí.

Tornar

Torna un nou flux.


Exemple de Java Stream filter().

A l'exemple següent, estem obtenint i iterant dades filtrades.

 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 } } 

Sortida:

 90000.0 

Exemple 2 de Java Stream filter()

A l'exemple següent, estem obtenint dades filtrades com a llista.

 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); } } 

Sortida:

 [90000.0]