القوائم والقوائم القابلة للتغيير
خزّن البيانات المرتبة
القوائم والقوائم القابلة للتغيير درس مجاني في Android Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Android Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Android Academy 4 دروس في المجموع.
ما القائمة؟
القائمة هي مجموعة مرتبة من العناصر. ولكل عنصر موضع يُسمى الفهرس، ويبدأ من 0.
تأتي القوائم في Kotlin بنوعين: قوائم للقراءة فقط لا يمكنك تغييرها، وقوائم قابلة للتغيير يمكنك إضافة العناصر إليها أو إزالتها منها.
توجد القوائم في كل مكان في تطبيقات Android: خلاصة منشورات، وصف من الأزرار، ونتائج بحث.
إنشاء قائمة للقراءة فقط
استخدم listOf() لإنشاء قائمة للقراءة فقط. وبعد إنشائها، لا يمكنك إضافة عناصر أو إزالتها.
هذا هو الخيار الافتراضي الأكثر أمانًا. إذا لم تتغير بياناتك مطلقًا، ففضّل قائمة للقراءة فقط.
fun main() {
val fruits = listOf("apple", "banana", "cherry")
println(fruits)
println("Size: ${fruits.size}")
}الوصول إلى العناصر باستخدام الفهرس
اقرأ عنصرًا باستخدام الأقواس المربعة وفهرسه. يوجد العنصر الأول عند الفهرس 0.
يمكنك أيضًا استخدام first() وlast() للوصول إلى طرفي القائمة.
fun main() {
val colors = listOf("red", "green", "blue")
println(colors[0])
println(colors.first())
println(colors.last())
}التكرار على قائمة
تمر حلقة for على كل عنصر بالترتيب. وهذه أكثر طريقة شيوعًا لمعالجة كل عنصر.
نطبع هنا كل اسم في سطر مستقل.
fun main() {
val names = listOf("Ada", "Linus", "Grace")
for (name in names) {
println("Hello, $name")
}
}إنشاء قائمة قابلة للتغيير
عندما تحتاج إلى تغيير المحتوى، استخدم mutableListOf(). فهي تتيح لك إضافة العناصر وإزالتها بعد الإنشاء.
استخدم add() لإلحاق عنصر بنهاية القائمة.
fun main() {
val tasks = mutableListOf("wake up", "code")
tasks.add("sleep")
println(tasks)
}إزالة العناصر
استخدم remove() لحذف قيمة محددة، أو removeAt() للحذف باستخدام الفهرس.
تعمل الدالتان على القوائم القابلة للتغيير فقط. ويؤدي استدعاؤهما على قائمة للقراءة فقط إلى خطأ في الترجمة.
fun main() {
val nums = mutableListOf(10, 20, 30, 40)
nums.remove(20)
nums.removeAt(0)
println(nums)
}تحديث عنصر
في القائمة القابلة للتغيير، أسند قيمة جديدة إلى فهرس لاستبدال العنصر الموجود.
يجب أن يكون الفهرس موجودًا مسبقًا، وإلا فسيحدث خطأ تجاوز حدود الفهرس.
fun main() {
val scores = mutableListOf(5, 8, 3)
scores[1] = 99
println(scores)
}التحقق من المحتوى
استخدم contains() أو الكلمة المفتاحية in للتحقق مما إذا كانت القائمة تحتوي على قيمة.
استخدم isEmpty() لاختبار ما إذا كانت القائمة لا تحتوي على عناصر. وتعمل هذه الأدوات مع نوعي القوائم.
fun main() {
val pets = listOf("cat", "dog")
println("cat" in pets)
println(pets.contains("fish"))
println(pets.isEmpty())
}الأنواع للقراءة فقط مقابل الأنواع القابلة للتغيير
النوع List<T> مخصص للقراءة فقط. أما النوع MutableList<T> فيضيف عمليات التغيير.
من الأنماط الشائعة إنشاء قائمة باستخدام نوع قابل للتغيير، ثم إتاحتها لبقية الشيفرة على أنها List للقراءة فقط، حتى لا تتمكن الشيفرة الأخرى من تعديلها.
val safe: List<Int> = mutableListOf(1, 2, 3)
// safe.add(4) would NOT compileالحجم والفهارس
تخبرك الخاصية size بعدد العناصر التي تحتوي عليها القائمة.
تتراوح الفهارس الصالحة من 0 إلى size - 1. استخدم indices للتكرار على المواضع.
fun main() {
val items = listOf("a", "b", "c")
for (i in items.indices) {
println("$i -> ${items[i]}")
}
}إضافة عدة عناصر دفعة واحدة
استخدم addAll() لإلحاق كل عنصر من مجموعة أخرى بقائمة قابلة للتغيير.
يفيد ذلك عند دمج النتائج، مثل دمج صفحتين من البيانات.
fun main() {
val list = mutableListOf(1, 2)
list.addAll(listOf(3, 4, 5))
println(list)
println("Total: ${list.size}")
}اختبار سريع
اختبر فهمك لقوائم Kotlin.
مراجعة
تعلمت أن القوائم مرتبة ومفهرسة بدءًا من 0. تنشئ listOf() قوائم للقراءة فقط، بينما تنشئ mutableListOf() قوائم قابلة للتغيير.
يمكنك الإضافة والإزالة والتحديث والتكرار والتحقق من المحتوى. فضّل القوائم للقراءة فقط ما لم تكن بحاجة فعلية إلى تغييرها.
الأسئلة الشائعة
هل درس «القوائم والقوائم القابلة للتغيير» مجاني؟
نعم — نص درس «القوائم والقوائم القابلة للتغيير» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Android Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Android Academy 4 دروس في المجموع.
ماذا ستتعلم في «القوائم والقوائم القابلة للتغيير»؟
خزّن البيانات المرتبة تتمرن على Android Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Android Academy؟
لا تُشترط خبرة سابقة. Android Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «القوائم والقوائم القابلة للتغيير»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Android Academy هذا؟
نعم. كل درس في Android Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- القوائم والقوائم القابلة للتغيير
- الخرائط والمجموعات
- map وfilter وforEach
- Lambdas والدوال عالية الرتبة