Strumień Java udostępnia metodę filter() służącą do filtrowania elementów strumienia na podstawie podanego predykatu. Załóżmy, że chcesz uzyskać tylko parzyste elementy swojej listy, możesz to łatwo zrobić za pomocą metody filter.
Ta metoda przyjmuje predykat jako argument i zwraca strumień składający się z wynikowych elementów.
Podpis
Sygnatura metody Stream filter() znajduje się poniżej:
Stream filter(Predicate predicate)
Parametr
orzec: Jako argument przyjmuje odwołanie do predykatu. Predykat to funkcjonalny interfejs. Możesz więc również przekazać tutaj wyrażenie lambda.
Powrót
Zwraca nowy strumień.
Przykład filtru strumienia Java ().
W poniższym przykładzie pobieramy i iterujemy przefiltrowane dane.
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 } }
Wyjście:
lista c#
90000.0
Przykład filtru strumienia Java () 2
W poniższym przykładzie pobieramy przefiltrowane dane w postaci listy.
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); } }
Wyjście:
[90000.0]