في Java 8 Streams تمت إضافتها كميزة جديدة في مربع أدوات Java. تتيح لك مجموعات البث معالجة المجموعات بسرعة وسهولة.
يرجى قراءة الفصل حول lambdas والبرمجة الوظيفية قبل المتابعة.
## كيف تعمل
يقوم الدفق بتكرار عناصر المجموعة لك. يتم استدعاء كل عملية وسيطة وعملية لكل كائن. بمجرد الانتهاء من جميع العمليات للكائنات الأولى ، ثم يتم تحميل الكائن الثاني.
## طرق مهمة
### خلق
*`Collection.stream()` : إنشاء دفق من أي كائن من أي فئة تنفيذ `Collection`
*`Arrays.stream(array)` : إنشاء دفق من صفيف
### العمليات الوسيطة
هذه العمليات تحويل "كائنات دفق" بطريقة أو بأخرى.
*`Stream.map(Function<In,Out> function)` : تطبيق وظيفة لتحويل In إلى Out
*`Stream.filter(Predicate<In> predicate)` : إزالة كائنات من Stream التي لا `Stream.filter(Predicate<In> predicate)` true
*`Stream.distinct()` : إزالة كائنات من دفق والتي هي مكررة
*`Stream.sorted()` : فرز الكائنات في الدفق
*`Stream.limit(int n)` : end Stream after n Objects
### العمليات الطرفية
هذه العمليات تلقي "كائنات دفق" وإنهاء "دفق".
*`Stream.collect(Collector<In,?,Out> collector)` : جمع كافة الكائنات في دفق في كائن
*`Stream.forEach(Consumer<In> consumer)` : تستهلك كافة الكائنات في دفق باستخدام الدالة المستهلك
*`Stream.count()` : حساب كافة الكائنات في دفق
*`Stream.findFirst()` : إرجاع الكائن الأول من الدفق وإيقاف
*`Stream.anyMatch(Predicate<In> predicate)` : إرجاع true إذا كان أي كائن في Stream اختبارات true لـ Predicate
*`Stream.allMatch(Predicate<In> predicate)` : إرجاع true إذا كان كل كائن في اختبار Stream صحيح لـ Predicate