Java srautas suteikia metodą filtras () srauto elementams filtruoti pagal pateiktą predikatą. Tarkime, kad norite gauti tik lyginius sąrašo elementus, tada tai galite padaryti lengvai naudodami filtravimo metodą.
Šis metodas naudoja predikatą kaip argumentą ir grąžina srautą, sudarytą iš gautų elementų.
Parašas
Srauto filtro() metodo parašas pateiktas toliau:
Stream filter(Predicate predicate)
Parametras
predikatas: Jame kaip argumentas naudojamas predikato nuoroda. Predikatas yra funkcinė sąsaja. Taigi, čia taip pat galite perduoti lambda išraišką.
Grįžti
Tai grąžina naują srautą.
Java Stream filtro() pavyzdys
Toliau pateiktame pavyzdyje gauname ir kartojame filtruotus duomenis.
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 } }
Išvestis:
90000.0
„Java Stream“ filtras() 2 pavyzdys
Šiame pavyzdyje filtruotus duomenis gauname kaip sąrašą.
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); } }
Išvestis:
[90000.0]