Menu
Coddy logo textTech

Wycinanie listy za pomocą SubList

Część sekcji Podstawy ścieżki Kotlin w Coddy. Lekcja 79 z 93.

Czasami trzeba wyodrębnić część listy, zamiast pracować z całą kolekcją. Metoda subList() pozwala utworzyć widok określonego zakresu elementów z istniejącej listy.

Metoda subList() przyjmuje dwa parametry: indeks początkowy (włącznie) i indeks końcowy (wyłącznie). Oznacza to, że element o indeksie początkowym jest uwzględniany, ale element o indeksie końcowym nie:

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

W tym przykładzie subList(1, 4) pobiera elementy od indeksu 1 do indeksu 4 (nie włącznie). Otrzymujemy w ten sposób drugi, trzeci i czwarty element.

Wynikowa podlista jest widokiem oryginalnej listy, a nie jej kopią. Warto o tym pamiętać podczas pracy z modyfikowalnymi listami, ponieważ zmiany w oryginalnej liście mogą wpływać na podlistę.

W większości zastosowań z listami tylko do odczytu możesz po prostu użyć go, aby uzyskać dostęp do zakresu elementów:

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

Wyzwanie

Średni

Otrzymasz listę liczb całkowitych oraz dwa indeksy określające zakres. Wyodrębnij podlistę za pomocą subList() i wypisz sumę wyodrębnionych elementów.

Format danych wejściowych:

  • Pierwszy wiersz: liczba całkowita n oznaczająca liczbę elementów
  • Kolejne n wierszy: liczby całkowite do dodania do listy
  • Następny wiersz: indeks początkowy (włącznie)
  • Ostatni wiersz: indeks końcowy (wyłącznie)

Format danych wyjściowych:

Wypisz sumę elementów wyodrębnionej podlisty.

Przykład:

Jeśli lista to [5, 10, 15, 20, 25], indeks początkowy to 1, a indeks końcowy to 4, podlista będzie wynosić [10, 15, 20], a wynikiem powinno być 45.

Spróbuj swoich sił

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: Napisz swój kod poniżej
    // Użyj subList(), aby wyodrębnić elementy od startIndex do endIndex
    // Oblicz i wypisz sumę wyodrębnionych elementów
    
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Kotlin