logo

Java Stream Filter

Tok Java ponuja metodo filter() za filtriranje elementov toka na podlagi podanega predikata. Recimo, da želite pridobiti samo sode elemente svojega seznama, potem lahko to preprosto storite s pomočjo metode filtra.

Ta metoda vzame predikat kot argument in vrne tok, sestavljen iz rezultatskih elementov.


Podpis

Podpis metode Stream filter() je podan spodaj:

 Stream filter(Predicate predicate) 

Parameter

predikat: Kot argument vzame referenco predikata. Predikat je funkcionalen vmesnik. Torej lahko tukaj posredujete tudi lambda izraz.

Vrnitev

Vrne nov tok.


Primer Java Stream filter().

V naslednjem primeru pridobivamo in ponavljamo filtrirane podatke.

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

Izhod:

 90000.0 

2. primer Java Stream filter().

V naslednjem primeru pridobivamo filtrirane podatke kot seznam.

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

Izhod:

 [90000.0]