Menu
Coddy logo textTech

List Slicing mit Take Drop

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

Kotlin bietet zwei einfachere Methoden zum Extrahieren von Teilen einer Liste, wenn du nur Elemente vom Anfang oder Ende benötigst: take() und drop().

Die Methode take() gibt eine neue Liste zurück, die die ersten n Elemente enthält:

val numbers = listOf(10, 20, 30, 40, 50)
val firstThree = numbers.take(3)
println(firstThree)  // [10, 20, 30]

Die Methode drop() bewirkt das Gegenteil. Sie überspringt die ersten n Elemente und gibt den Rest zurück:

val numbers = listOf(10, 20, 30, 40, 50)
val afterTwo = numbers.drop(2)
println(afterTwo)  // [30, 40, 50]

Im Gegensatz zu subList() geben diese Methoden unabhängige Kopien statt Ansichten zurück. Sie sind außerdem besser lesbar, wenn du einfach „die ersten paar“ oder „alles außer den ersten paar“ Elementen möchtest.

Du kannst beide Methoden kombinieren, um einen mittleren Abschnitt zu extrahieren:

val letters = listOf("A", "B", "C", "D", "E")
val middle = letters.drop(1).take(3)
println(middle)  // [B, C, D]

Wenn du mehr Elemente anforderst, als vorhanden sind, geben diese Methoden einfach das Verfügbare zurück, ohne einen Fehler auszulösen:

val short = listOf(1, 2)
println(short.take(10))  // [1, 2]
println(short.drop(10))  // []
challenge icon

Aufgabe

Mittel

Du erhältst eine Liste von Ganzzahlen und zwei Zahlen: wie viele Elemente vom Anfang entfernt werden sollen und wie viele Elemente danach übernommen werden sollen.

Verwende drop() und take() zusammen, um einen mittleren Abschnitt der Liste zu extrahieren, und gib anschließend die extrahierten Elemente aus.

Eingabeformat:

  • Erste Zeile: eine Ganzzahl n, die die Anzahl der Elemente angibt
  • Nächste n Zeilen: Ganzzahlen, die der Liste hinzugefügt werden sollen
  • Nächste Zeile: die Anzahl der Elemente, die vom Anfang entfernt werden sollen
  • Letzte Zeile: die Anzahl der Elemente, die nach dem Entfernen übernommen werden sollen

Ausgabeformat:

Gib die resultierende Liste im standardmäßigen Listenformat von Kotlin aus.

Beispiel:

Wenn die Liste [10, 20, 30, 40, 50, 60] lautet, 2 Elemente entfernt werden und 3 Elemente übernommen werden, sollte die Ausgabe wie folgt aussehen:

[30, 40, 50]

Probier es selbst

fun main() {
    // Lies die Anzahl der Elemente
    val n = readLine()!!.toInt()
    
    // Lies die Listenelemente
    val list = mutableListOf<Int>()
    for (i in 1..n) {
        list.add(readLine()!!.toInt())
    }
    
    // Lies die drop- und take-Werte
    val dropCount = readLine()!!.toInt()
    val takeCount = readLine()!!.toInt()
    
    // TODO: Schreibe deinen Code darunter
    // Verwende drop() und take(), um den mittleren Abschnitt zu extrahieren
    
    
    // Gib das Ergebnis aus
    println(result)
}
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