Fluxul Java oferă o metodă filter() pentru a filtra elementele fluxului pe baza predicatului dat. Să presupunem că doriți să obțineți doar elemente egale din lista dvs., atunci puteți face acest lucru cu ușurință cu ajutorul metodei de filtrare.
Această metodă ia predicatul ca argument și returnează un flux format din elemente rezultate.
Semnătură
Semnătura metodei Stream filter() este dată mai jos:
Stream filter(Predicate predicate)
Parametru
predicat: Ia ca argument referința la predicat. Predicatul este o interfață funcțională. Deci, puteți trece și expresia lambda aici.
Întoarcere
Acesta returnează un nou flux.
Exemplu de filtru Java Stream().
În exemplul următor, preluăm și repetăm datele filtrate.
ex de nume de utilizator
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 } }
Ieșire:
90000.0
Exemplul 2 de filtru Java Stream()
În exemplul următor, preluăm datele filtrate ca o listă.
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); } }
Ieșire:
[90000.0]