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]Aufgabe
MittelDu 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
nZeilen: 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
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorErweiterte ZuweisungVergleichsoperatorenRückblick – Einfache Mathematik7Grundlegende Ein-/Ausgabe
println-FunktionString-VorlagenReadLine-EingabeTypkonvertierungWiederholung – Jahre bis zur RenteWiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteBenannte ArgumenteStandardwerteFunktionen mit einem AusdruckRückblick – Sigma-FunktionRückblick – Validierungsfunktion2Variablen
Val vs VarTypinferenzZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Ternär mit If-AusdruckWiederholung – Einfache Logik8Rechner zum Aufteilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion14Listen – Fortgeschrittene
List Slicing mit SubListList Slicing mit Take DropSequenzoperatorenDie Contains-MethodeWiederholung – Eine Seite durchsuchen3Nullbarkeit
Was ist Null-Sicherheit?Nullable-TypenOperator für sicheren AufrufElvis-OperatorGrundlagen der FunktionsaufgabeAssertion auf Nicht-NullRückblick – Sicherer Zugriff6Entscheidungen treffen
If-AnweisungIf - ElseIf als AusdruckWhen-AusdruckWhen mit BereichenRückblick - Einfacher Taschenrechner9Schleifen
For-SchleifeWhile-SchleifeDo-While-SchleifeBreakContinueBereiche in SchleifenVerschachtelte SchleifeRückblick – FakultätRückblick – Dynamische EingabeÜbe selbstständig: Kotlin-Playground