الدرس 49: تعمق في واجهة برمجة تطبيقات Streams في Java
تعد واجهة Streams API (منذ Java 8+) واحدة من أقوى الميزات لمعالجة تسلسل البيانات (المجموعات أو المصفوفات) بأسلوب وظيفي وتصريحي.
1. ما هو الـ Stream؟
الـ Stream هو تسلسل من العناصر يدعم العمليات التجميعية المتسلسلة والمتوازية. الأهم من ذلك، أن الـ Stream:
- ليس هيكل بيانات: لا يخزن البيانات؛ بل ينقل البيانات من مصدر (مثل القائمة).
- وظيفي: العمليات لا تعدل بيانات المصدر.
- كسول (Lazy): لا يتم تنفيذ العمليات إلا عند استدعاء عملية نهائية.
2. هيكل خط أنابيب الـ Stream
يتكون خط أنابيب الـ Stream من ثلاثة أجزاء:
- المصدر: مجموعة أو مصفوفة (
list.stream()). - العمليات الوسيطة: تحول الـ stream وتعيد stream جديد (مثل
filter,map,sorted). وهي عمليات كسولة. - العملية النهائية: تنتج نتيجة أو تأثيراً جانبياً (مثل
forEach,collect,count). وهذا ما يطلق التنفيذ.
3. العمليات الوسيطة الأساسية
filter(): تختار العناصر التي تطابق شرطاً معيناً.map(): تحول كل عنصر إلى قيمة جديدة.
java
List
List
System.out.println(result); // المخرج: [APPLE, BANANA]
4. عملية reduce()
تقوم reduce() بدمج جميع العناصر في الـ stream لإنتاج نتيجة واحدة (مثل المجموع).
java
List