0Pricing
Android Academy · درس

مجموعات Kotlin

اعمل مع List وSet وMap. استخدم العوامل الوظيفية مثل filter وmap وsortedBy وforEach وfind وany وall، وسلسل العمليات لإجراء تحويلات موجزة للبيانات.

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

نظرة عامة على المجموعات

توفر مكتبة Kotlin القياسية ثلاثة أنواع رئيسية من المجموعات:

  • List — تسلسل مرتب من العناصر (وقد يحتوي على عناصر مكررة)
  • Set — عناصر فريدة من دون ترتيب محدد
  • Map — أزواج من المفتاح والقيمة، والمفاتيح فريدة

يحتوي كل نوع على إصدار غير قابل للتغيير (للقراءة فقط) وإصدار قابل للتغيير (يمكن تعديله).

القوائم: listOf مقابل mutableListOf

أنشئ القوائم باستخدام دوال الإنشاء:

fun main() {
    // Immutable — cannot add/remove items
    val fruits = listOf("Apple", "Banana", "Cherry")
    println(fruits[0])       // Apple
    println(fruits.size)     // 3

    // Mutable — can modify
    val scores = mutableListOf(10, 20, 30)
    scores.add(40)
    scores.removeAt(0)       // remove index 0
    println(scores)          // [20, 30, 40]
}

Map: أزواج المفتاح والقيمة

استخدم mapOf وmutableMapOf لإنشاء الخرائط. يمكنك الوصول إلى القيم باستخدام المفتاح:

fun main() {
    val capitals = mapOf(
        "Turkey" to "Ankara",
        "Germany" to "Berlin",
        "Japan" to "Tokyo"
    )

    println(capitals["Turkey"])      // Ankara
    println(capitals["France"])      // null (not found)
    println(capitals.getOrDefault("France", "Unknown")) // Unknown

    // Iterate
    for ((country, city) in capitals) {
        println("$country -> $city")
    }
}

filter — تحديد العناصر

تعيد filter قائمة جديدة تحتوي فقط على العناصر التي تطابق شرطًا:

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8)

    val evens = numbers.filter { it % 2 == 0 }
    println(evens)   // [2, 4, 6, 8]

    val names = listOf("Alice", "Bob", "Anna", "Charlie")
    val aNames = names.filter { it.startsWith("A") }
    println(aNames)  // [Alice, Anna]
}

map — تحويل العناصر

تحوّل map كل عنصر وتعيد قائمة جديدة:

fun main() {
    val prices = listOf(10.0, 20.0, 30.0)

    // Apply 10% tax
    val withTax = prices.map { it * 1.1 }
    println(withTax)  // [11.0, 22.0, 33.0]

    val names = listOf("alice", "bob", "carol")
    val upper = names.map { it.uppercase() }
    println(upper)    // [ALICE, BOB, CAROL]
}

sortedBy وsortedByDescending

رتّب قائمة حسب إحدى الخصائص:

data class Student(val name: String, val grade: Int)

fun main() {
    val students = listOf(
        Student("Alice", 88),
        Student("Bob", 95),
        Student("Carol", 72)
    )

    val byGrade = students.sortedByDescending { it.grade }
    for (s in byGrade) println("${s.name}: ${s.grade}")
    // Bob: 95
    // Alice: 88
    // Carol: 72
}

forEach وfind

دالتان إضافيتان مفيدتان للمجموعات:

  • forEach — التكرار من دون إنشاء نتيجة
  • find — إعادة أول عنصر يطابق شرطًا، أو null

تسلسل العمليات

سلسِل عدة عمليات لإجراء تحويلات موجزة على البيانات:

data class Product(val name: String, val price: Double, val inStock: Boolean)

fun main() {
    val products = listOf(
        Product("Laptop", 999.0, true),
        Product("Mouse", 29.0, false),
        Product("Keyboard", 79.0, true),
        Product("Monitor", 349.0, true)
    )

    // In-stock products under $500, sorted by price
    val result = products
        .filter { it.inStock && it.price < 500 }
        .sortedBy { it.price }
        .map { "${it.name}: ${it.price}" }

    result.forEach { println(it) }
}

any وall وcount

دوال تجميع للحصول على إجابات سريعة:

  • any { condition } — true إذا طابق عنصر واحد على الأقل الشرط
  • all { condition } — true إذا طابقت جميع العناصر الشرط
  • count { condition } — عدد العناصر المطابقة
  • sumOf { it.price } — مجموع خاصية رقمية

اختبار سريع

ما الدالة التي تستخدمها للحصول فقط على العناصر التي تحقق شرطًا في قائمة؟

مراجعة: مجموعات Kotlin

يمكنك الآن التعامل مع البيانات في Kotlin بكفاءة:

  • listOf / mutableListOf، mapOf / mutableMapOf
  • filter — تحديد العناصر المطابقة
  • map — تحويل العناصر
  • sortedBy / sortedByDescending
  • تسلسل العمليات لإنشاء مسارات بيانات واضحة وسهلة القراءة

التالي: عرض القوائم على الشاشة باستخدام RecyclerView.

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

هل درس «مجموعات Kotlin» مجاني؟

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

ماذا ستتعلم في «مجموعات Kotlin»؟

اعمل مع List وSet وMap. استخدم العوامل الوظيفية مثل filter وmap وsortedBy وforEach وfind وany وall، وسلسل العمليات لإجراء تحويلات موجزة للبيانات. تتمرن على Android Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

كم من الوقت يستغرق درس «مجموعات Kotlin»؟

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

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

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

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

  1. مجموعات Kotlin
  2. أساسيات RecyclerView
  3. أحداث النقر في RecyclerView
  4. SharedPreferences
  5. تفضيلات DataStore
  6. Adapters وDiffUtil
← العودة إلى Android Academy