Découpage de liste avec SubList
Fait partie de la section Fondamentaux du Journey Kotlin de Coddy. Leçon 79 sur 93.
Parfois, vous devez extraire une partie d’une liste plutôt que de travailler avec l’ensemble de la collection. La méthode subList() vous permet de créer une vue d’une plage spécifique d’éléments à partir d’une liste existante.
La méthode subList() prend deux paramètres : l’index de début (inclus) et l’index de fin (exclus). Cela signifie que l’élément situé à l’index de début est inclus, mais que l’élément situé à l’index de fin ne l’est pas :
val numbers = listOf(10, 20, 30, 40, 50)
val slice = numbers.subList(1, 4)
println(slice) // [20, 30, 40]Dans cet exemple, subList(1, 4) extrait les éléments de l’index 1 jusqu’à (sans l’inclure) l’index 4. Cela nous donne les deuxième, troisième et quatrième éléments.
La sous-liste obtenue est une vue de la liste d’origine, et non une copie. Il est important de le comprendre lorsque vous travaillez avec des listes mutables, car les modifications apportées à la liste d’origine peuvent affecter la sous-liste.
Pour la plupart des cas d’utilisation avec des listes en lecture seule, vous pouvez simplement l’utiliser pour accéder à une plage d’éléments :
val days = listOf("Mon", "Tue", "Wed", "Thu", "Fri")
val midWeek = days.subList(1, 4)
println(midWeek) // [Tue, Wed, Thu]Défi
MoyenVous recevrez une liste d’entiers et deux indices représentant une plage. Extrayez une sous-liste à l’aide de subList() et affichez la somme des éléments extraits.
Format d’entrée :
- Première ligne : un entier
nreprésentant le nombre d’éléments - Les
nlignes suivantes : les entiers à ajouter à la liste - Ligne suivante : l’indice de début (inclus)
- Dernière ligne : l’indice de fin (exclus)
Format de sortie :
Affichez la somme des éléments de la sous-liste extraite.
Exemple :
Si la liste est [5, 10, 15, 20, 25] avec l’indice de début 1 et l’indice de fin 4, la sous-liste serait [10, 15, 20] et la sortie devrait être 45.
Essayez vous-même
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: Écrivez votre code ci-dessous
// Utilisez subList() pour extraire les éléments de startIndex à endIndex
// Calculez et affichez la somme des éléments extraits
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloAffectation augmentéeOpérateurs de comparaisonRécapitulatif - Mathématiques simples7E/S de base
Fonction PrintlnModèles de chaînesEntrée ReadLineConversion de typeRécapitulatif - Années avant la retraiteRécapitulatif - Vrai ou faux10Fonctions
Déclarer une fonctionParamètres et argumentsValeurs de retourArguments nommésValeurs par défautFonctions à expression uniqueRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validation2Variables
Val ou VarInférence de typeNombresChaîne de caractèresBooléenConventions de nommageRécapitulatif - Initialiser des variables5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Opérateurs logiques, partie 3Ternaire avec une expression ifRécapitulatif - Logique simple8Calculateur de partage d’addition
Message de bienvenueSaisie des données11FizzBuzz avec une variante
Aperçu du jeuLa fonction FizzBuzz14Listes avancées
Découpage de liste avec SubListDécoupage de liste avec Take DropOpérateurs de séquenceLa méthode ContainsRécapitulatif - Rechercher une page3Nullabilité
Qu’est-ce que la sécurité vis-à-vis de nullTypes nullableOpérateur d’appel sécuriséOpérateur ElvisBases des défis de fonctionsAssertion de non-nullitéRécapitulatif - Accès sécurisé6Prise de décision
Instruction IfIf - ElseIf comme expressionExpression WhenWhen avec des plagesRécapitulatif - Calculatrice simple9Boucles
Boucle ForBoucle WhileBoucle Do-WhileBreakContinuePlages dans les bouclesBoucle imbriquéeRécapitulatif - FactorielleRécapitulatif - Entrée dynamiqueEntraînez-vous par vous-même : Playground Kotlin