כל מה שאתה צריך לדעת על זרם ב- Java



מאמר זה יציג בפניכם את Stream ב- Java חבילה שהוצגה לאחרונה ב- Java ותוכלו לקבל הסבר מפורט על מה שהיא יכולה לעשות.

חבילה נוספת נוספת ב- Java 8, המכונה java.util.stream נוסף עבור המשתמשים לחוויית תכנות יעילה. ניתן להגדיר זרם כרצף של אובייקטים, התומכים בשיטות מרובות. במאמר זה נחקור את Stream in

המצביעים הבאים יוסקרו במאמר זה,





לפני שנתחיל במאמר זה ב- Stream In Java, הבה נבחן כמה תכונות חשובות,

זרם בג'אווה: תכונות

  • זרם אינו מבנה נתונים ואינו מאחסן אלמנטים. אוספים, מערכים או ערוצי קלט / פלט הם המקום שממנו הוא לוקח את הקלט.
  • מקור הזרם נותר ללא שינוי לאחר ביצוע פעולות בו. לדוגמא, סינון זרם פשוט מייצר זרם חדש ללא האלמנטים המסוננים, במקום לשנות את הזרם המקורי.
  • פעולות צבירה כגון סינון, צמצום, התאמה, חיפוש וכו 'נתמכות על ידי זרם.
  • עצלות יכולה להיחשב כתכונה של הזרם, מכיוון שהיא מעריכה את הקודים רק כנדרש.
  • ביקור באלמנטים הנמצאים בזרם יכול להיעשות רק פעם אחת במהלך חייו של זרם. יש ליצור זרם חדש כדי לבקר מחדש באותם אלמנטים הנמצאים במקור.

ממשיך הלאה עם מאמר זה על סטרים בג'אווה



יצירת זרמים

ניתן ליצור זרמים בשיטות הבאות:

  • זרם() - זרם רציף מוחזר.אוסףנחשב כמקור.
  • parallelStream () - זרם מקביל מוחזר. האוסף נחשב כמקור.
מחרוזות רשימה = Arrays.asList ('שלום', '', 'היי', 'הולה', 'בונז'ור', '', 'נאמסטה') רשימה מסוננת = מחרוזות.זרם (). פילטר (מחרוזת ->! מחרוזת. isEmpty ()). אסוף (Collectors.toList ())

ממשיך הלאה עם מאמר זה על סטרים בג'אווה

פעולות בזרמים:

פעולות ביניים:

מַפָּה



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

רשימה מספר = Arrays.asList (5,4,4,2,3,3) ריבועי רשימה = num.stream (). מפה (y -> y * y). הבחנה (). אסוף (Collectors.toList ())

לְסַנֵן

ניתן להסיר אלמנטים על בסיס קריטריונים באמצעות שיטה זו.

שם רשימה = Arrays.asList ('שבת', 'יום ראשון', 'יום חמישי') רשימה res = name.stream (). פילטר (s-> s.startsWith ('S')). אסוף (Collectors.toList () )

מְמוּיָן

ניתן למיין את הזרם באמצעות שיטה זו.

שם רשימה = Arrays.asList ('שבת', 'יום ראשון', 'יום חמישי') רשימה res = name.stream (). ממוינת (). Collect (Collectors.toList ())

זרם ב- Java: פעולות מסוף:

לאסוף

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

רשימה num = Arrays.asList (4,3,2,5,6) הגדר res = num.stream (). מפה (y-> y * y) .collect (Collectors.toSet ())

לכל אחד

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

רשימה num = Arrays.asList (4,3,2,5) num.stream (). מפה (x-> x * x) .forEach (y-> System.out.println (y))

לְהַפחִית

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

רשימה num = Arrays.asList (4,3,2,5) int אפילו = num.stream (). פילטר (x-> x% 2 == 0) .פחת (0, (res, i) -> res + אני)

למשתנה res מוקצה בתחילה הערך 0, ואני מתווסף אליו.

ממשיך הלאה עם מאמר זה על סטרים בג'אווה

סִנוּן

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

ייבא java.util. * ייבא java.util.stream.Collectors מחלקה מכשיר {int num שם מחרוזת מחיר לצוף ציבורי Instrument (int num, שם מחרוזת, מחיר float) {this.num = num this.name = שם this.price = מחיר}} מבחן בכיתה ציבורית {ציבורי ריק סטטי ראשי (מחרוזת [] טענות) {רשימת מכשירים רשימה = חדש ArrayList () // הוספת מוצרים instrumentsList.add (כלי חדש (1, 'גיטרה', 15000f)) instrumentsList.add (חדש כלי נגינה (2, 'פסנתר', 18000f)) כלים List.add (כלי חדש (3, 'חליל', 15000f)) מכשירים List.add (כלי חדש (4, 'תופים', 48000f)) מכשירים List.add (כלי חדש ( 5, 'Ukulele', 32000f)) רשימת InstrumentPriceList2 = instrumentsList.stream () .filter (p -> p.price> 30000) // data filtering .map (p-> p.price) // fetching price .collect ( Collectors.toList ()) // אוסף כרשימה System.out.println (InstrumentPriceList2)}}
 תְפוּקָה: 

[48000.0, 32000.0]

ממשיך הלאה עם מאמר זה על סטרים בג'אווה

מתבטל:

ניתן לבצע איטרציה על ידי שימוש בזרם ב- java.

ייבא java.util.stream. * מבחן ציבורי מבחן {ציבורי ריק ריק סטטי (מחרוזת [] טענות) {Stream.iterate (1, element-> element + 1) .filter (element-> element% 4 == 0). מגבלה (6) .forEach (System.out :: println)}}

תְפוּקָה:

4

8

12

16

עשרים

24

בואו נסתכל על דוגמא אחרת, כדי להבין את המושג סטרים בג'אווה בצורה יעילה יותר.

דוגמא:

ייבא java.util. * יבוא java.util.stream. * מחלקה ציבורית מבחן {main public static void main (String args []) {// יצירת רשימה של מספרים שלמים List num = Arrays.asList (6,7,8,9 ) // באמצעות שיטת מפה ריבועים = מספר.זרם (). מפה (y -> y * y). collect (Collectors.toList ()) System.out.println (ריבועים) // יצירת רשימה של רשימת מחרוזת ימים = Arrays.asList ('יום שישי', 'שבת', 'יום ראשון') // שיטת סינון רשימת res = ימים .stream (). filter (s-> s.startsWith ('S')). collect (Collectors.toList ()) System.out.println (res) // מיון שיטה רשימת תצוגה = days.stream (). ממוינת (). collect (Collectors.toList ()) System.out.println (display) / / יצירת רשימה של מספרים שלמים מספר רשימה = Arrays.asList (6,9,5,7,1) // שיטת האיסוף מחזירה קבוצה Set SetSetSet = number.stream (). מפה (y-> y * y) .collect (Collectors.toSet ()) System.out.println (sqSet) // forEach שיטה num.stream (). מפה (y-> y * y) .forEach (x-> System.out.println (x)) / / להפחית את השיטה int אפילו = num.stream (). מסנן (x-> x% 2 == 0) .פחת (0, (תוצאה, i) -> תוצאה + i) System.out.println (אפילו)}}

תְפוּקָה:

[36, 49, 64, 81]

[שבת ראשון]

[שישי שבת ראשון]

[81, 49, 1, 36, 25]

36

49

64

81

פייתון מה זה __init__

14

זרמים מאפשרים למשתמש לבצע פעולות על האלמנטים באופן יעיל.

לפיכך הגענו לסוף מאמר זה בנושא 'זרם בג'אווה'. אם ברצונך ללמוד עוד, עיין ב- Java Training של Edureka, חברת למידה מקוונת אמינה. קורס ההכשרה וההסמכה של Java J2EE ו- SOA של אדוריקה נועד להכשיר אותך לקונספטים מרכזיים של Java וגם עם מסגרות Java שונות כמו Hibernate & Spring.

יש לך שאלה עבורנו? אנא הזכיר זאת במדור התגובות בבלוג זה ונחזור אליך בהקדם האפשרי.