Kotlin Academy · درس

‏mutableListOf وmutableMapOf: منشئات قابلة للتغيير

أنشئ مجموعات قابلة للتغيير وعدّلها بأمان.

الدرس 2 من 413 خطوة

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

متى تحتاج إلى التغيير

تتيح المجموعات القابلة للتغيير إضافة العناصر وإزالتها وتحديثها. استخدمها عندما تنمو المجموعة أو تتغير بمرور الوقت.

mutableListOf

تنشئ mutableListOf كائن MutableList يستند إلى ArrayList. ويمكنك إضافة العناصر وإزالتها واستبدالها.
val list = mutableListOf("a", "b", "c")
list.add("d")
list.add(0, "z")  // insert at index 0
list.remove("b")
println(list)  // [z, a, c, d]

mutableSetOf

تنشئ mutableSetOf كائن MutableSet. وتُرجع add القيمة false إذا كان العنصر موجودًا بالفعل.
val set = mutableSetOf(1, 2, 3)
set.add(4)
set.add(2)  // already exists, no change
set.remove(1)
println(set)  // [2, 3, 4]

mutableMapOf

تنشئ mutableMapOf كائن MutableMap. استخدم put أو [] لإدراج العناصر وتحديثها.
val map = mutableMapOf("a" to 1, "b" to 2)
map["c"] = 3
map["a"] = 10      // update
map.remove("b")
println(map)  // {a=10, c=3}

addAll وremoveAll وretainAll

عمليات جماعية للمجموعات القابلة للتغيير.
val nums = mutableListOf(1, 2, 3)
nums.addAll(listOf(4, 5, 6))
println(nums)  // [1, 2, 3, 4, 5, 6]
nums.removeAll { it % 2 == 0 }
println(nums)  // [1, 3, 5]

clear وreplaceAll

تزيل clear جميع العناصر. وتحول replaceAll كل عنصر في موضعه.
val list = mutableListOf(1, 2, 3, 4)
list.replaceAll { it * 2 }
println(list)  // [2, 4, 6, 8]
list.clear()
println(list)  // []

إنشاء قائمة باستخدام buildList

تنشئ buildList قائمة للقراءة فقط عبر أداة إنشاء قابلة للتغيير، بطريقة واضحة ومختصرة.
val squares = buildList {
    for (i in 1..5) add(i * i)
}
println(squares)  // [1, 4, 9, 16, 25]

buildMap وbuildSet

وبالمثل، يتيح لك buildMap وbuildSet إنشاء الخرائط والمجموعات باستخدام عمليات قابلة للتغيير، ثم إرجاع نتائج للقراءة فقط.
val map = buildMap {
    put("en", "English")
    put("de", "German")
    put("tr", "Turkish")
}
println(map["tr"])  // Turkish

ArrayList وLinkedList: أنواع صريحة

إذا كنت تحتاج إلى خصائص أداء محددة، فاستخدم ArrayList أو ArrayDeque مباشرةً.
val arrayList = ArrayList<String>()
arrayList.add("x")
val deque = ArrayDeque<Int>()
deque.addFirst(1)
deque.addLast(2)

استخدام getOrPut لتجميع قيم Map

تُرجع getOrPut قيمة موجودة، أو تُدرج قيمة افتراضية وتُرجعها، ولذلك فهي مناسبة جدًا للتجميع.
val groups = mutableMapOf<String, MutableList<Int>>()
for (i in 1..6) {
    val key = if (i % 2 == 0) "even" else "odd"
    groups.getOrPut(key) { mutableListOf() }.add(i)
}
println(groups)

فرز القوائم القابلة للتغيير

تفرز sort وsortWith القوائم القابلة للتغيير في موضعها.
val nums = mutableListOf(3, 1, 4, 1, 5, 9)
nums.sort()
println(nums)  // [1, 1, 3, 4, 5, 9]
nums.sortDescending()
println(nums)  // [9, 5, 4, 3, 1, 1]

تحقق سريع

ما الدالة التي تنشئ List للقراءة فقط باستخدام أداة إنشاء قابلة للتغيير داخل lambda؟

مراجعة

استخدم mutableListOf/SetOf/MapOf للمجموعات القابلة للتغيير. واستخدم add وremove وput وclear وreplaceAll لإجراء التغييرات. واستخدم buildList/Map/Set للحصول على نتائج غير قابلة للتغيير بطريقة واضحة بعد بنائها باستخدام عمليات قابلة للتغيير. التالي: الوصول إلى العناصر بأمان!
البدء مجانًا

تعلم Kotlin مع معلم ذكاء اصطناعي — مجانًا

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

الدورات
51
الدروس
203

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

هل درس «‏mutableListOf وmutableMapOf: منشئات قابلة للتغيير» مجاني؟

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

ماذا ستتعلم في «‏mutableListOf وmutableMapOf: منشئات قابلة للتغيير»؟

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

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

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

كم من الوقت يستغرق درس «‏mutableListOf وmutableMapOf: منشئات قابلة للتغيير»؟

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

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

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

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

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