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]Wyzwanie
ŚredniOtrzymasz 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
noznaczająca liczbę elementów - Kolejne
nwierszy: 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
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory – część 1
Operatory arytmetyczneOperator moduloPrzypisanie z operatoremOperatory porównaniaPowtórka – proste działania matematyczne7Podstawowe wejście/wyjście
Funkcja printlnSzablony ciągów znakówWczytywanie danych przez ReadLineKonwersja typówPowtórka — lata do emeryturyPowtórka — prawda czy fałsz10Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneArgumenty nazwaneWartości domyślneFunkcje z pojedynczym wyrażeniemPowtórka – funkcja SigmaPowtórka – funkcja walidująca2Zmienne
Val a VarWnioskowanie o typieLiczbyŁańcuch znakówWartość logicznaKonwencje nazewnictwaPowtórzenie – inicjalizacja zmiennych5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Operatory logiczne, część 3Operator trójargumentowy z wyrażeniem ifPowtórka — prosta logika8Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych11FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz14Zaawansowane listy
Wycinanie listy za pomocą SubListWycinanie listy za pomocą Take i DropOperatory sekwencjiMetoda ContainsPowtórka — wyszukiwanie strony3Obsługa wartości null
Czym jest bezpieczeństwo nullTypy dopuszczające nullOperator bezpiecznego wywołaniaOperator ElvisPodstawy wyzwania z funkcjamiAsercja wartości niebędącej nullPodsumowanie — bezpieczny dostęp6Podejmowanie decyzji
Instrukcja ifIf - elseIf jako wyrażenieWyrażenie whenWhen z zakresamiPowtórka — prosty kalkulator9Pętle
Pętla forPętla whilePętla do-whileBreakContinueZakresy w pętlachPętla zagnieżdżonaPowtórka – silniaPowtórka – dynamiczne wprowadzanie danychPoćwicz samodzielnie: Edytor online Kotlin