يوفر دفق Java طريقة filter() لتصفية عناصر الدفق على أساس المسند المحدد. لنفترض أنك تريد الحصول على عناصر متساوية فقط من قائمتك، فيمكنك القيام بذلك بسهولة بمساعدة طريقة التصفية.
تأخذ هذه الطريقة المسند كوسيطة وتقوم بإرجاع دفق يتكون من العناصر الناتجة.
إمضاء
توقيع طريقة Stream filter() موضح أدناه:
Stream filter(Predicate predicate)
معامل
فاعل: يستغرق المرجع المسند كوسيطة. المسند هو واجهة وظيفية. لذا، يمكنك أيضًا تمرير تعبير لامدا هنا.
يعود
يعود تيار جديد.
مثال على مرشح Java Stream ().
في المثال التالي، نقوم بجلب البيانات المصفاة وتكرارها.
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 } }
انتاج:
90000.0
مرشح Java Stream () مثال 2
في المثال التالي، نقوم بإحضار البيانات التي تمت تصفيتها كقائمة.
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); } }
انتاج:
[90000.0]