0Pricing
Android Academy · درس

الخرائط والمجموعات

مجموعات مفتاح-قيمة ومجموعات فريدة

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

الخرائط والمجموعات

تخزن الخريطة أزواجًا من المفتاح والقيمة: إذ يشير كل مفتاح فريد إلى قيمة، مثل القاموس.

وتخزن المجموعة عناصر فريدة بلا تكرارات ومن دون ترتيب مضمون.

كلاهما نوعان من المجموعات يتجاوزان القوائم، ويفيدان عند الحاجة إلى البحث أو التفرد.

إنشاء خريطة

استخدم mapOf() مع أزواج key to value لإنشاء خريطة للقراءة فقط.

يجب أن تكون المفاتيح فريدة. نربط هنا أسماء الفواكه بأسعارها.

fun main() {
    val prices = mapOf("apple" to 3, "banana" to 2)
    println(prices)
    println("Size: ${prices.size}")
}

البحث عن القيم

اقرأ قيمة باستخدام الأقواس المربعة ومفتاح. وإذا كان المفتاح مفقودًا، فستحصل على null.

استخدم معامل Elvis ?: لتوفير قيمة افتراضية عند غياب المفتاح.

fun main() {
    val prices = mapOf("apple" to 3, "banana" to 2)
    println(prices["apple"])
    println(prices["cherry"] ?: "not found")
}

التكرار على خريطة

تمنحك حلقة for على الخريطة كل إدخال. ويمكنك تفكيكه إلى key وvalue.

هذه هي الطريقة المعتادة لمعالجة كل زوج.

fun main() {
    val ages = mapOf("Ada" to 36, "Bob" to 24)
    for ((name, age) in ages) {
        println("$name is $age")
    }
}

الخرائط القابلة للتغيير

استخدم mutableMapOf() عندما تحتاج إلى إضافة الإدخالات أو تغييرها.

يؤدي الإسناد إلى مفتاح جديد إلى إدراجه، بينما يستبدل الإسناد إلى مفتاح موجود قيمته.

fun main() {
    val stock = mutableMapOf("pens" to 5)
    stock["books"] = 10
    stock["pens"] = 8
    println(stock)
}

الإزالة من خريطة

استدعِ remove() مع مفتاح لحذف ذلك الإدخال من خريطة قابلة للتغيير.

استخدم containsKey() للتحقق من وجود مفتاح قبل الاعتماد عليه.

fun main() {
    val m = mutableMapOf("a" to 1, "b" to 2)
    m.remove("a")
    println(m.containsKey("a"))
    println(m)
}

المفاتيح والقيم

تتيح كل خريطة مجموعتي keys وvalues.

استخدمهما عندما تهتم بأحد جانبي الأزواج فقط.

fun main() {
    val prices = mapOf("apple" to 3, "banana" to 2)
    println(prices.keys)
    println(prices.values)
}

إنشاء مجموعة

استخدم setOf() لإنشاء مجموعة للقراءة فقط. وتُحذف القيم المكررة تلقائيًا.

وهذا يجعل المجموعات مثالية لجمع العناصر الفريدة.

fun main() {
    val tags = setOf("kotlin", "android", "kotlin")
    println(tags)
    println("Size: ${tags.size}")
}

التحقق من العضوية

تتألق المجموعات في عمليات التحقق السريع من العضوية. استخدم in أو contains() لاختبار ما إذا كانت قيمة ما موجودة.

يكون البحث في المجموعة أسرع عادةً من فحص عناصر القائمة واحدًا تلو الآخر.

fun main() {
    val allowed = setOf("admin", "editor")
    println("admin" in allowed)
    println(allowed.contains("guest"))
}

المجموعات القابلة للتغيير وإزالة التكرارات

استخدم mutableSetOf() لإنشاء مجموعة وتوسيعها مع مرور الوقت. لا تؤدي إضافة قيمة موجودة مسبقًا إلى أي تغيير.

حيلة سريعة: استدعِ toSet() على قائمة لإزالة التكرارات.

fun main() {
    val nums = listOf(1, 2, 2, 3, 3, 3)
    val unique = nums.toSet()
    println(unique)
}

الخريطة أم المجموعة

استخدم الخريطة عندما تحتاج إلى ربط المفاتيح بالقيم، مثل ربط اسم مستخدم بملف شخصي.

استخدم المجموعة عندما يهمك فقط ما إذا كان شيء ما موجودًا، مع منع التكرارات.

تحقق سريع

اختبر مدى فهمك للخرائط والمجموعات.

مراجعة

تخزّن الخرائط أزواج المفاتيح والقيم باستخدام mapOf() / mutableMapOf()؛ ويمكنك البحث باستخدام المفتاح ومعالجة المفاتيح غير الموجودة باستخدام ?:.

تخزّن المجموعات العناصر الفريدة باستخدام setOf() / mutableSetOf() وتوفّر عمليات تحقق سريعة من العضوية.

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

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

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

ماذا ستتعلم في «الخرائط والمجموعات»؟

مجموعات مفتاح-قيمة ومجموعات فريدة تتمرن على Android Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

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

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

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

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

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

  1. القوائم والقوائم القابلة للتغيير
  2. الخرائط والمجموعات
  3. map وfilter وforEach
  4. Lambdas والدوال عالية الرتبة
← العودة إلى Android Academy