זרם Java מספק מסנן שיטה () לסינון רכיבי זרם על בסיס פרדיקט נתון. נניח שאתה רוצה לקבל רק אלמנטים אחידים מהרשימה שלך אז אתה יכול לעשות זאת בקלות בעזרת שיטת הסינון.
שיטה זו לוקחת פרידיקט כארגומנט ומחזירה זרם המורכב מאלמנטים שנוצרו.
חֲתִימָה
החתימה של שיטת Stream filter() ניתנת להלן:
Stream filter(Predicate 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 filter() דוגמה 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]