הפעלה והסרה של פריט מזרם

1. סקירה כללית

במדריך מהיר זה נלמד על הדרכים השונות בהן אנו יכולים לפעול על פריט בזרם Java 8 ולאחר מכן להסיר אותו לאחר השלמת הפעולה.

2. התקנה

בואו נגדיר את שלנו פריט התנגד קודם. זהו אובייקט פשוט עם יחיד int שדה.

יש לה שיטה שקובעת אם האובייקט כשיר להפעלה, בהתבסס על הערך הפנימי:

פריט מחלקה {ערך פרטי פרטי; // בוני ציבורי בוליאני isQualified () {ערך החזר% 2 == 0; } הריק הציבורי פועל () {System.out.println ("מספר זוגי"); }}

עכשיו אנחנו יכולים ליצור מקור עבור שלנו זרם שיכול להיות אוסף של פריטים:

ListList = רשימת ArrayList חדשה (); עבור (int i = 0; i <10; i ++) {itemList.add (פריט חדש (i)); }

3. סינון פריטים

במקרים רבים, אם אנו רוצים לעשות משהו עם קבוצת משנה של פריטים, אנו יכולים להשתמש ב- זרם מסנן # שיטה, ואנחנו לא צריכים להסיר דבר קודם:

itemList.stream () .filter (item -> item.isQualified ()) ...

4. הפעלה והסרה של פריט

4.1. Collection.removeIf

אנחנו יכולים להשתמש זרמים לאתר ולפעול על אוסף פריטים.

באמצעות זרמים, אנו יכולים להחיל פונקציות למבדה המכונות מנבא. לקריאה נוספת אודות זרמים ו מנבאיש לנו מאמר נוסף כאן.

אנחנו יכולים ליצור לְבַסֵס שיקבע אם פריט זכאי לניתוח:

Predicate isQualified = פריט -> item.isQualified ();

שֶׁלָנוּ לְבַסֵס יסנן את פריטים שאנחנו רוצים לנתח:

itemList.stream () .filter (isQualified) .forEach (item -> item.operate ());

לאחר שסיימנו לפעול על הפריטים בזרם, נוכל להסיר אותם באמצעות אותו לְבַסֵס השתמשנו קודם לסינון:

itemList.removeIf (isQualified);

כְּלַפֵּי פְּנִים, להסיר אם משתמש ב- איטרטור לחזור על הרשימה ולהתאים את האלמנטים המשתמשים בפרדיקט. כעת אנו יכולים להסיר את כל האלמנטים התואמים מהרשימה.

4.2. Collection.removeAll

אנו יכולים גם להשתמש ברשימה אחרת כדי להחזיק את האלמנטים שעברו ניתוח, ואז להסיר אותם מהרשימה המקורית:

רשימה מופעלת רשימה = ArrayList חדש (); itemList.stream () .filter (item -> item.isQualified ()) .forEach (item -> {item.operate (); operatedList.add (item);}); itemList.removeAll (מופעל רשימה);

בניגוד להסיר אם המשתמשת באינטרטור, להסיר את כל משתמש פשוט לולאה כדי להסיר את כל האלמנטים התואמים ברשימה.

5. מסקנה

במאמר זה בדקנו דרך לפעול על פריט ב- Java 8 Streams ואז להסירו. ראינו גם דרך לעשות זאת על ידי שימוש ברשימה נוספת והסרת כל האלמנטים המותאמים.

קוד המקור של מדריך זה ומקרי הבדיקה הרלוונטיים זמינים באתר GitHub.


$config[zx-auto] not found$config[zx-overlay] not found