0Pricing
Kotlin Academy · درس

تكرار المجموعات وتحويلها باستخدام المكتبة القياسية

استخدم map وfilter وany وall وcount مع أمثلة واقعية على المجموعات.

تكرار المجموعات وتحويلها باستخدام المكتبة القياسية درس مجاني في Kotlin Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Academy 4 دروس في المجموع.

المجموعات بوصفها مسارات معالجة

تحوّل مكتبة Kotlin القياسية المجموعات من خلال عمليات متسلسلة. وتُرجع كل دالة مجموعة جديدة، من دون المساس بالمجموعة الأصلية.

map: تحويل واحد إلى واحد

تطبّق map دالةً على كل عنصر وتُرجع قائمة بالنتائج.
val prices = listOf(10, 20, 30)
val withTax = prices.map { it * 1.1 }
println(withTax)  // [11.0, 22.0, 33.0]

flatMap: تحويل واحد إلى عدة عناصر

تحوّل flatMap كل عنصر إلى قائمة، ثم تفرد جميع القوائم في قائمة واحدة.
val sentences = listOf("hello world", "foo bar")
val words = sentences.flatMap { it.split(" ") }
println(words)  // [hello, world, foo, bar]

filter وfilterNot

تُبقي filter على العناصر المطابقة للمسند، بينما تُبقي filterNot على العناصر غير المطابقة.
val nums = (1..10).toList()
val evens = nums.filter { it % 2 == 0 }
val odds = nums.filterNot { it % 2 == 0 }
println(evens)  // [2, 4, 6, 8, 10]

groupBy: التجميع حسب المفتاح

تُرجع groupBy قيمة من النوع Map>، حيث تُجمّع العناصر وفقًا لدالة المفتاح.
val words = listOf("one", "two", "three", "four", "five")
val byLength = words.groupBy { it.length }
println(byLength)
// {3=[one, two], 5=[three], 4=[four, five]}

associate وassociateBy

تنشئ associate كائن Map باستخدام lambda تُرجع زوجًا من مفتاح وقيمة. أما associateBy فتستخدم مستخرجًا للمفتاح.
val items = listOf("apple", "banana", "cherry")
val byFirst = items.associateBy { it.first() }
println(byFirst)  // {a=apple, b=banana, c=cherry}

partition: التقسيم إلى جزأين

تقسم partition المجموعة إلى قائمتين: قائمة بالعناصر المطابقة وأخرى بالعناصر غير المطابقة.
val (evens, odds) = (1..8).partition { it % 2 == 0 }
println(evens)  // [2, 4, 6, 8]
println(odds)   // [1, 3, 5, 7]

distinct وdistinctBy

تزيل distinct العناصر المكررة. وتزيل distinctBy التكرارات استنادًا إلى مفتاح.
val nums = listOf(1, 2, 2, 3, 1, 4)
println(nums.distinct())  // [1, 2, 3, 4]
val words = listOf("Hi", "hello", "HI")
println(words.distinctBy { it.lowercase() })

take وdrop وchunked

تأخذ take أول N من العناصر، وتتجاوز drop أول N، بينما تقسم chunked العناصر إلى قوائم فرعية حجم كل منها N.
val list = (1..10).toList()
println(list.take(3))    // [1, 2, 3]
println(list.drop(7))    // [8, 9, 10]
println(list.chunked(3)) // [[1,2,3],[4,5,6],[7,8,9],[10]]

zip: إقران مجموعتين

تجمع zip قائمتين في قائمة من الأزواج، وتتوقف عند الوصول إلى نهاية القائمة الأقصر.
val names = listOf("Alice", "Bob", "Charlie")
val scores = listOf(90, 85, 92)
val combined = names.zip(scores)
println(combined)  // [(Alice, 90), (Bob, 85), (Charlie, 92)]

sumOf وminOf وmaxOf وaverageOf

اختصارات للتجميع باستخدام دوال التحويل.
val items = listOf("apple", "banana", "cherry")
println(items.sumOf { it.length })    // 18
println(items.maxOf { it.length })    // 6
println(items.minOf { it.length })    // 5

تحقق سريع

ما الدالة التي تجمع عناصر المجموعة في Map> وفقًا لمحدِّد مفتاح؟

مراجعة

map وflatMap وfilter وgroupBy وassociate وpartition وdistinct وzip هي الأدوات الأساسية لتحويل المجموعات. ادمجها في مسارات معالجة واضحة ومعبرة. التالي: الفئات والمنشئات!

الأسئلة الشائعة

هل درس «تكرار المجموعات وتحويلها باستخدام المكتبة القياسية» مجاني؟

نعم — نص درس «تكرار المجموعات وتحويلها باستخدام المكتبة القياسية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Academy 4 دروس في المجموع.

ماذا ستتعلم في «تكرار المجموعات وتحويلها باستخدام المكتبة القياسية»؟

استخدم map وfilter وany وall وcount مع أمثلة واقعية على المجموعات. تتمرن على Kotlin Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Academy؟

لا تُشترط خبرة سابقة. Kotlin Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «تكرار المجموعات وتحويلها باستخدام المكتبة القياسية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Academy هذا؟

نعم. كل درس في Kotlin Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ‏listOf وsetOf وmapOf: المجموعات للقراءة فقط
  2. ‏mutableListOf وmutableMapOf: منشئات قابلة للتغيير
  3. الوصول إلى العناصر: ‏get وfirst وlast وgetOrNull
  4. تكرار المجموعات وتحويلها باستخدام المكتبة القياسية
← العودة إلى Kotlin Academy