كل ما تحتاج لمعرفته حول البث في جافا



ستعرفك هذه المقالة على Stream in Java وهي حزمة تم تقديمها مؤخرًا في Java بالإضافة إلى شرح مفصل لما يمكن أن تفعله.

حزمة إضافية جديدة في Java 8 ، والمعروفة باسم تمت إضافة java.util.stream من أجل المستخدمين لتجربة برمجة فعالة. يمكن تعريف الدفق على أنه تسلسل من الكائنات يدعم طرقًا متعددة. في هذه المقالة سنستكشف Stream in

سيتم تغطية المؤشرات التالية في هذه المقالة ،





قبل أن نبدأ بهذه المقالة على Stream In Java ، دعنا نلقي نظرة على بعض الميزات المهمة ،

مثال عن طريقة استدعاء جافا

دفق في جافا: الميزات

  • الدفق ليس بنية بيانات ولا يخزن العناصر. المجموعات أو المصفوفات أو قنوات الإدخال / الإخراج هي المكان الذي تأخذ منه المدخلات.
  • يظل مصدر التدفق غير معدل بعد إجراء العمليات عليه. على سبيل المثال ، تؤدي تصفية التدفق إلى إنتاج دفق جديد بدون العناصر المصفاة ، بدلاً من تعديل الدفق الأصلي.
  • يتم دعم عمليات التجميع مثل التصفية والتقليل والمطابقة والعثور وما إلى ذلك بواسطة الدفق.
  • يمكن اعتبار الكسل سمة من سمات الدفق ، لأنه يقيِّم الرموز فقط عند الحاجة.
  • لا يمكن زيارة العناصر الموجودة في الدفق إلا مرة واحدة خلال عمر الدفق. يجب إنشاء دفق جديد لإعادة زيارة نفس العناصر الموجودة في المصدر.

المضي قدما في هذه المقالة على Stream in Java



توليد تيارات

يمكن إنشاء التدفقات بالطرق التالية:

  • مجرى() - يتم إرجاع تدفق متسلسل.مجموعةيعتبر المصدر.
  • المتوازي () - يتم إرجاع دفق متوازي. تعتبر المجموعة بمثابة المصدر.
List strings = Arrays.asList ('Hello'، ''، 'Hi'، 'Hola'، 'Bonjour'، ''، 'Namaste') تمت تصفية القائمة = strings.stream (). filter (سلسلة ->! سلسلة. isEmpty ()). collection (Collectors.toList ())

المضي قدما في هذه المقالة على Stream in Java

العمليات على التدفقات:

العمليات الوسيطة:

خريطة



يمكن تعيين العناصر الموجودة في المجموعة إلى كائنات أخرى وفقًا للمسند الذي تم تمريره كوسيطة. يستخدم المثال التالي لعرض مربعات فريدة للأرقام باستخدام طريقة الخريطة.

List num = Arrays.asList (5،4،4،2،3،3) قائمة المربعات = عدد التيار (). الخريطة (y -> y * y). مميزة (). جمع (Collectors.toList ())

منقي

يمكن إزالة العناصر على أساس المعايير باستخدام هذه الطريقة.

اسم القائمة = Arrays.asList ('Saturday'، 'Sunday'، 'الخميس') List res = name.stream (). filter (s-> s.startsWith ('S')). collection (Collectors.toList () )

مرتبة

يمكن فرز الدفق باستخدام هذه الطريقة.

اسم القائمة = Arrays.asList ('Saturday'، 'Sunday'، 'الخميس') List res = name.stream (). Sorted (). collection (Collectors.toList ())

دفق في جافا: العمليات الطرفية:

تجميع

يمكن دمج نتيجة المعالجة على عناصر تيار باستخدام عملية التجميع.

List num = Arrays.asList (4،3،2،5،6) Set res = num.stream (). map (y-> y * y) .collect (Collectors.toSet ())

لكل

تُستخدم هذه الطريقة للتكرار خلال كل عنصر موجود في الدفق.

List num = Arrays.asList (4،3،2،5) num.stream (). map (x-> x * x). for كل (y-> System.out.println (y))

خفض

يمكن تقليل عناصر الدفق إلى قيمة واحدة باستخدام هذه الطريقة.

List num = Arrays.asList (4،3،2،5) int even = num.stream (). filter (x-> x٪ 2 == 0). تقليل (0، (res، i) -> res + أنا)

يتم تعيين القيمة 0 للمتغير res مبدئيًا ، ويتم إضافة i إليه.

المضي قدما في هذه المقالة على Stream in Java

الفلتره

يمكن تصفية الكود باستخدام طريقة الدفق. في المثال التالي ، يتم تصفية سعر الأدوات.

import java.util. * import java.util.stream.Collectors class Instrument {int num String name float price public Instrument (int num، String name، float price) {this.num = num this.name = name this.price = price}} public class Test {public static void main (String [] args) {List InstrumentsList = new ArrayList () // Adding ProductsumentsList.add (new Instrument (1، 'Guitar'، 15000f)). آلة (2 ، 'بيانو' ، 18000f)) الآلات List.add (أداة جديدة (3 ، 'Flute' ، 15000f)) Instrument.add (أداة جديدة (4 ، 'Drums' ، 48000f)). 5، 'Ukulele'، 32000f)) List InstrumentPriceList2 = toolsList.stream (). مرشح (p -> p.price> 30000) // تصفية البيانات. خريطة (p-> p.price) // جلب السعر. جمع ( Collectors.toList ()) // تجميع كـ قائمة System.out.println (InstrumentPriceList2)}}
 انتاج: 

[48000.0، 32000.0]

المضي قدما في هذه المقالة على Stream in Java

التكرار:

يمكن إجراء التكرار باستخدام الدفق في جافا.

import java.util.stream. * public class Test {public static void main (String [] args) {Stream.iterate (1، element-> element + 1) .filter (element-> element٪ 4 == 0). limit (6). forEach (System.out :: println)}}

انتاج:

4

8

12

ما هو اناكوندا للبايثون

16

عشرين

24

دعنا نلقي نظرة على مثال آخر ، لفهم مفهوم البث في جافا بشكل أكثر فعالية.

مثال:

الطباعة المزدوجة لجافا int
import java.util. * import java.util.stream. * public class Test {public static void main (String args []) {// إنشاء قائمة بالأعداد الصحيحة List num = Arrays.asList (6،7،8،9 ) // باستخدام طريقة الخريطة List squares = num.stream (). map (y -> y * y). collect (Collectors.toList ()) System.out.println (مربعات) // إنشاء قائمة بأيام قائمة السلاسل = Arrays.asList ('Friday'، 'Saturday'، 'Sunday') // طريقة التصفية قائمة الدقة = أيام .stream (). filter (s-> s.startsWith ('S')). جمع (Collectors.toList ()) System.out.println (res) // طريقة الفرز عرض القائمة = days.stream (). Sorted (). collection (Collectors.toList ()) System.out.println (عرض) / / إنشاء قائمة بالأعداد الصحيحة List number = Arrays.asList (6،9،5،7،1) // طريقة التجميع تُرجع مجموعة Set sqSet = number.stream (). map (y-> y * y). (Collectors.toSet ()) System.out.println (sqSet) // forEach method num.stream (). map (y-> y * y). for كل (x-> System.out.println (x)) / / تقليل الأسلوب int even = num.stream (). filter (x-> x٪ 2 == 0). reduce (0، (result، i) -> result + i) System.out.println (even)}}

انتاج:

[36 ، 49 ، 64 ، 81]

[السبت الأحد]

[الجمعة السبت الأحد]

[81 ، 49 ، 1 ، 36 ، 25]

36

49

64

81

14

تتيح التدفقات للمستخدم إجراء عمليات على العناصر بشكل فعال.

وهكذا وصلنا إلى نهاية هذه المقالة حول 'البث في جافا'. إذا كنت ترغب في معرفة المزيد ، تحقق من Java Training بواسطة Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت. تم تصميم دورة تدريب وإصدار شهادات Java J2EE و SOA من Edureka لتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في هذه المدونة وسنعاود الاتصال بك في أقرب وقت ممكن.