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]