Menu
Coddy logo textTech

List Slicing mit SubList

Teil des Abschnitts Grundlagen der Kotlin-Journey von Coddy. Lektion 79 von 93.

Manchmal musst du einen Teil einer Liste extrahieren, anstatt mit der gesamten Sammlung zu arbeiten. Mit der Methode subList() kannst du eine Ansicht eines bestimmten Bereichs von Elementen aus einer vorhandenen Liste erstellen.

Die Methode subList() benötigt zwei Parameter: den Startindex (einschließlich) und den Endindex (ausschließlich). Das bedeutet, dass das Element am Startindex enthalten ist, das Element am Endindex jedoch nicht:

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

In diesem Beispiel extrahiert subList(1, 4) Elemente ab Index 1 bis (aber nicht einschließlich) Index 4. Dadurch erhalten wir das zweite, dritte und vierte Element.

Die resultierende Unterliste ist eine Ansicht der ursprünglichen Liste, keine Kopie. Dies ist wichtig zu verstehen, wenn du mit veränderbaren Listen arbeitest, da Änderungen an der ursprünglichen Liste die Unterliste beeinflussen können.

Für die meisten Anwendungsfälle mit schreibgeschützten Listen kannst du es einfach verwenden, um auf einen Bereich von Elementen zuzugreifen:

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

Aufgabe

Mittel

Du erhältst eine Liste von Ganzzahlen und zwei Indizes, die einen Bereich darstellen. Extrahiere mithilfe von subList() eine Teilliste und gib die Summe der extrahierten Elemente aus.

Eingabeformat:

  • Erste Zeile: eine Ganzzahl n, die die Anzahl der Elemente angibt
  • Die nächsten n Zeilen: Ganzzahlen, die der Liste hinzugefügt werden
  • Nächste Zeile: der Startindex (inklusiv)
  • Letzte Zeile: der Endindex (exklusiv)

Ausgabeformat:

Gib die Summe der Elemente in der extrahierten Teilliste aus.

Beispiel:

Wenn die Liste [5, 10, 15, 20, 25] den Startindex 1 und den Endindex 4 hat, wäre die Teilliste [10, 15, 20] und die Ausgabe sollte 45 sein.

Probier es selbst

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: Schreibe deinen Code darunter
    // Verwende subList(), um Elemente von startIndex bis endIndex zu extrahieren
    // Berechne und gib die Summe der extrahierten Elemente aus
    
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Kotlin-Playground