Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تقسيم القوائم باستخدام SubList

جزء من قسم الأساسيات في رحلة Kotlin على Coddy. الدرس 79 من 93.

أحيانًا تحتاج إلى استخراج جزء من قائمة بدلًا من العمل مع المجموعة بأكملها. تتيح لك الطريقة subList() إنشاء عرض لنطاق محدد من العناصر من قائمة موجودة.

تأخذ طريقة subList() معاملين: الفهرس الابتدائي (شامل) والفهرس النهائي (غير شامل). وهذا يعني أن العنصر الموجود عند الفهرس الابتدائي مُضمَّن، بينما العنصر الموجود عند الفهرس النهائي غير مُضمَّن:

val numbers = listOf(10, 20, 30, 40, 50)
val slice = numbers.subList(1, 4)
println(slice)  // [20, 30, 40]

في هذا المثال، تستخرج subList(1, 4) العناصر بدءًا من الفهرس 1 وحتى (دون تضمين) الفهرس 4. وهذا يعطينا العناصر الثانية والثالثة والرابعة.

القائمة الفرعية الناتجة هي عرض للقائمة الأصلية، وليست نسخة منها. من المهم فهم ذلك عند العمل مع القوائم القابلة للتغيير، إذ يمكن أن تؤثر التغييرات التي تُجرى على القائمة الأصلية في القائمة الفرعية.

بالنسبة لمعظم حالات الاستخدام مع القوائم للقراءة فقط، يمكنك ببساطة استخدامها للوصول إلى نطاق من العناصر:

val days = listOf("Mon", "Tue", "Wed", "Thu", "Fri")
val midWeek = days.subList(1, 4)
println(midWeek)  // [Tue, Wed, Thu]
challenge icon

التحدي

متوسط

ستتلقى قائمة من الأعداد الصحيحة ومؤشرين يمثلان نطاقًا. استخرج قائمة فرعية باستخدام subList() واطبع مجموع العناصر المستخرجة.

تنسيق الإدخال:

  • السطر الأول: عدد صحيح n يمثل عدد العناصر
  • الأسطر n التالية: أعداد صحيحة لإضافتها إلى القائمة
  • السطر التالي: فهرس البداية (شاملًا)
  • السطر الأخير: فهرس النهاية (غير شامل)

تنسيق الإخراج:

اطبع مجموع العناصر في القائمة الفرعية المستخرجة.

مثال:

إذا كانت القائمة هي [5, 10, 15, 20, 25] مع فهرس بداية 1 وفهرس نهاية 4، فستكون القائمة الفرعية [10, 15, 20]، ويجب أن يكون الناتج 45.

جرّب بنفسك

fun main() {
    val n = readLine()!!.toInt()
    val list = mutableListOf<Int>()
    
    repeat(n) {
        list.add(readLine()!!.toInt())
    }
    
    val startIndex = readLine()!!.toInt()
    val endIndex = readLine()!!.toInt()
    
    // TODO: اكتب الكود الخاص بك أدناه
    // استخدم subList() لاستخراج العناصر من startIndex إلى endIndex
    // احسب واطبع مجموع العناصر المستخرجة
    
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Kotlin