Java stream poskytuje metodu filter() pro filtrování prvků streamu na základě daného predikátu. Předpokládejme, že chcete získat pouze sudé prvky vašeho seznamu, pak to můžete snadno udělat pomocí metody filtrování.
Tato metoda bere predikát jako argument a vrací proud složený z výsledných prvků.
Podpis
Podpis metody Stream filter() je uveden níže:
Stream filter(Predicate predicate)
Parametr
predikát: Jako argument bere odkaz na predikát. Predikát je funkční rozhraní. Takže zde můžete také předat výraz lambda.
Vrátit se
Vrátí nový proud.
Příklad Java Stream filter().
V následujícím příkladu načítáme a iterujeme filtrovaná data.
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ýstup:
90000.0
Příklad Java Stream filter() 2
V následujícím příkladu načítáme filtrovaná data jako 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); } }
Výstup:
[90000.0]