Slicing delle liste con SubList
Fa parte della sezione Fondamenti del percorso Kotlin di Coddy. Lezione 79 di 93.
A volte devi estrarre una parte di una lista anziché lavorare con l’intera raccolta. Il metodo subList() ti permette di creare una vista di un intervallo specifico di elementi da una lista esistente.
Il metodo subList() accetta due parametri: l’indice iniziale (incluso) e l’indice finale (escluso). Ciò significa che l’elemento all’indice iniziale è incluso, mentre quello all’indice finale non lo è:
val numbers = listOf(10, 20, 30, 40, 50)
val slice = numbers.subList(1, 4)
println(slice) // [20, 30, 40]In questo esempio, subList(1, 4) estrae gli elementi dall'indice 1 fino all'indice 4 (escluso). Questo ci dà il secondo, il terzo e il quarto elemento.
La sottolista risultante è una vista della lista originale, non una copia. È importante capirlo quando si lavora con liste mutabili, poiché le modifiche alla lista originale possono influire sulla sottolista.
Per la maggior parte dei casi d'uso con liste di sola lettura, puoi semplicemente usarlo per accedere a un intervallo di elementi:
val days = listOf("Mon", "Tue", "Wed", "Thu", "Fri")
val midWeek = days.subList(1, 4)
println(midWeek) // [Tue, Wed, Thu]Sfida
MedioRiceverai un elenco di numeri interi e due indici che rappresentano un intervallo. Estrai una sottolista usando subList() e stampa la somma degli elementi estratti.
Formato dell'input:
- Prima riga: un numero intero
nche rappresenta il numero di elementi - Le successive
nrighe: numeri interi da aggiungere all'elenco - Riga successiva: l'indice iniziale (incluso)
- Ultima riga: l'indice finale (escluso)
Formato dell'output:
Stampa la somma degli elementi della sottolista estratta.
Esempio:
Se l'elenco è [5, 10, 15, 20, 25] con indice iniziale 1 e indice finale 4, la sottolista sarebbe [10, 15, 20] e l'output dovrebbe essere 45.
Provalo tu
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: Scrivi il tuo codice qui sotto
// Usa subList() per estrarre gli elementi da startIndex a endIndex
// Calcola e stampa la somma degli elementi estratti
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAssegnazione compostaOperatori di confrontoRipasso: matematica semplice7Input/output di base
Funzione printlnTemplate di stringheInput con readLineConversione di tipoRiepilogo - Anni alla pensioneRiepilogo - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori di ritornoArgomenti denominatiValori predefinitiFunzioni a espressione singolaRiepilogo - Funzione SigmaRiepilogo - Funzione di validazione2Variabili
Val vs VarInferenza del tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Operatori logici Parte 3Ternario con espressione ifRipasso - Logica semplice8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con un tocco
Panoramica del giocoLa funzione FizzBuzz14Liste: argomenti avanzati
Slicing delle liste con SubListSlicing delle liste con Take e DropOperatori di sequenzaIl metodo containsRiepilogo - Cerca una pagina3Nullabilità
Cos'è la null safetyTipi nullableOperatore di chiamata sicuraOperatore ElvisBasi della sfida sulle funzioniAsserzione non-nullRiepilogo - Accesso sicuro6Prendere decisioni
Istruzione ifIf-elseIf come espressioneEspressione whenwhen con intervalliRiepilogo - Calcolatrice semplice9Cicli
Ciclo forCiclo whileCiclo do-whilebreakcontinueIntervalli nei cicliCiclo annidatoRipasso - fattorialeRipasso - input dinamicoEsercitati da solo: Playground Kotlin