Java straume nodrošina metodes filtru (), lai filtrētu straumes elementus, pamatojoties uz doto predikātu. Pieņemsim, ka vēlaties iegūt tikai pāra elementus no sava saraksta, tad varat to izdarīt viegli, izmantojot filtra metodi.
Šī metode izmanto predikātu kā argumentu un atgriež straumi, kas sastāv no iegūtajiem elementiem.
Paraksts
Straumes filtra() metodes paraksts ir norādīts zemāk:
Stream filter(Predicate predicate)
Parametrs
predikāts: Tas izmanto predikāta atsauci kā argumentu. Predikāts ir funkcionāls interfeiss. Tātad šeit var nodot arī lambda izteiksmi.
Atgriezties
Tas atgriež jaunu straumi.
Java Stream filtra() piemērs
Nākamajā piemērā mēs ienesam un atkārtojam filtrētus datus.
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 } }
Izvade:
90000.0
Java Stream filtra() 2. piemērs
Nākamajā piemērā mēs ienesam filtrētus datus kā sarakstu.
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); } }
Izvade:
[90000.0]