Java stream poskytuje metódu filter() na filtrovanie prvkov streamu na základe daného predikátu. Predpokladajme, že chcete získať iba párne prvky svojho zoznamu, potom to môžete ľahko urobiť pomocou metódy filtrovania.
Táto metóda berie predikát ako argument a vracia prúd pozostávajúci z výsledných prvkov.
Podpis
Podpis metódy Stream filter() je uvedený nižšie:
java arraylist zoradený
Stream filter(Predicate predicate)
Parameter
predikát: Ako argument berie predikátovú referenciu. Predikát je funkčné rozhranie. Takže tu môžete odovzdať aj výraz lambda.
Návrat
Vracia nový prúd.
Príklad Java Stream filter().
V nasledujúcom príklade načítavame a iterujeme filtrované údaje.
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 } }
Výkon:
90000.0
Príklad Java Stream filter() 2
V nasledujúcom príklade načítavame filtrované údaje ako zoznam.
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); } }
Výkon:
[90000.0]