Skip to Sidebar Skip to Content
اقرأ-تك اقرأ-تك
ضيفنا الكريم

  • قائمة القراءة
  • تسجيل الدخول
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©

Stream FlatMap in Java with Examples

  • Mahmoud Youssef by Mahmoud Youssef
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • •
  • 2 Jul, 2024
  • •
  • 3 min read
  • Share on X
  • Share on Facebook
  • Share on LinkedIn
  • Share on Pinterest
  • Email
Stream FlatMap in Java with Examples
Stream FlatMap in Java with Examples
  • Java
  • Programming Language

المقدمة

في الـ Java، بعض الـ Functions زي الـ map و flatMap هي أدوات أساسية في الـ (Functional Programming).

فالـ map عندنا بنستخدمها اما نكون عاوزين نحول العناصر اللي عندنا في List لشكل تاني بمعنى أدق بنعمل Transformation لكل Element في الـ List بنعمله Mapping لشكل مختلف، بينما الـ flatMap بتستخدم بشكل رئيسي لتحويل وتقليص المجموعات لمجموعات مسطحة أو Flattened.

يعني ايه الكلام ده ؟ خلونا نكمل عشان نفهم الموضوع أكتر.


إيه هي الـ FlatMap

الـ flatMap هي عملية بنطبق فيها Function معينة على كل عنصر من عناصر الـ (Stream) اللي معانا وبناء عليه بيرجع Stream تاني، وبعد كده بنضم كل الـ Streams دي في Stream واحد. فبيخليهم Flattened يعني مسطحين.


طب ايه الفرق بين Map و FlatMap

  • الـ Map: بتاخد Function وبتحول عنصر لـ عنصر تاني زي ما قولنا اكني بعمل Transformation للعنصر لعنصر تاني في الـ Stream.
  • الـ FlatMap: بتاخد Function بتحول العنصر لـ Stream، وبعد كده بتسطح (flattening) الـ Streams اللي نتجت دي في Stream واحد.

بعض الأمثلة لاستخدام FlatMap

خلونا نشوف مع بعض أمثلة لاستخدام الـ FlatMap عشان نفهمها كويس ونفهم هي بتقدملنا ايه.

Text Analysis Example without FlatMap

هنفترض إن عندنا قائمة من الجمل وعاوزين نجيب قائمة بكل الكلمات اللي موجودة في الجمل دي.

لو شغالين من غير FlatMap كان شكل الكود هيكون كالآتي :

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class FlatMapExampleWithoutFlatMap {
    public static void main(String[] args) {
        List<String> sentences = Arrays.asList("Hello world", "FlatMap in Java", "Stream API examples");
        
        List<String> words = new ArrayList<>();
        for (String sentence : sentences) {
            String[] splitWords = sentence.split(" ");
            for (String word : splitWords) {
                words.add(word);
            }
        }
        
        System.out.println(words);
    }
}

وطبعا زي ماحنا شايفين الـ Code مش Readable وصعب انه يتفهم خصوصا لو كان فيه Complex Operations بتتم كذلك , وعشان كده الـ Stream API في الـ Java لو فهمناه كويس وبدأنا نطبقه ونطبق الـ Stream Operations , ده هيحسن من الـ Maintainability بتاعة الـ Code بتاعنا.

طب شكل الكود باستعمال الـ FlatMap هيكون عامل ازاي ؟


تقدروا دلوقتي تشتركوا في النشرة الأسبوعية لاقرأ-تِك بشكل مجاني تمامًا عشان يجيلكوا كل جديد بشكل أسبوعي فيما يخص مواضيع متنوعة وبشروحات بسيطة وسهلة وبجودة عالية 🚀

النشرة هيكون ليها شكل جديد ومختلف عن شكلها القديم وهنحاول انها تكون مميزة ومختلفة وخليط بين المحتوى الأساسي اللي بينزل ومفاجآت تانية كتير 🎉

Eqraatech Newsletter | Eqraatech - اقرأ-تِك | Substack
محتوى تقني متميز في مختلف مجالات هندسة البرمجيات باللغة العربية عن طريق تبسيط المفاهيم البرمجية المعقدة بشكل سلس وباستخدام صور توضيحية مذهلة. Click to read Eqraatech Newsletter, a Substack publication with hundreds of subscribers.
SubstackEqraatech - اقرأ-تِك

Text Analysis Example with FlatMap

هذا المقال مخصص للأعضاء المنتسبين لخطط الاشتراك المدفوعة فقط

اشترك الآن وتصفح كافة المقالات المميزة واستمتع بمحتوى حصري وابق على اطلاع دائم بالتحديثات المستمرة.

اشترك الآن 🚀

هل لديك حساب؟ تسجيل الدخول

في هذا المقال
اشترك الآن واكمل قراءة المقال
قناة اقرأ-تِك على التليجرام قناة اقرأ-تِك على التليجرام

اشترك الآن بنشرة اقرأ‑تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!

مقالات ذات صلة

  • Deep Dive into Code Quality - Beyond Bugs 5 min read

    Deep Dive into Code Quality - Beyond Bugs

    Rowan Ibrahem Rowan Ibrahem • 1 Sep, 2024
    Rowan Ibrahem Rowan Ibrahem
    Flutter Developer
    • Website
  • Java Collections Cheatsheet 1 min read

    Java Collections Cheatsheet

    Mahmoud Youssef Mahmoud Youssef • 25 Aug, 2024
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Best Practices for Handling NullPointerException in Java 3 min read

    Best Practices for Handling NullPointerException in Java

    Mahmoud Youssef Mahmoud Youssef • 22 Aug, 2024
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Java Exceptions Cheatsheet 1 min read

    Java Exceptions Cheatsheet

    Alaa Elkzaz Alaa Elkzaz • 3 Aug, 2024
    Alaa Elkzaz Alaa Elkzaz
    Co-Founder & Software Engineer
    • Website
  • Completable Future join() vs. get() in Java 2 min read

    Completable Future join() vs. get() in Java

    Mahmoud Youssef Mahmoud Youssef • 8 Jul, 2024
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Lazy Evaluation in Java Streams 2 min read

    Lazy Evaluation in Java Streams

    Mahmoud Youssef Mahmoud Youssef • 4 Jul, 2024
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Introduction to Java HttpClient 3 min read

    Introduction to Java HttpClient

    Mahmoud Youssef Mahmoud Youssef • 26 Jun, 2024
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Full Guide Into Map and HashMap in Java 3 min read

    Full Guide Into Map and HashMap in Java

    Mahmoud Youssef Mahmoud Youssef • 24 Jun, 2024
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
اقرأ-تك اقرأ-تك
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©