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]