Menu
Coddy logo textTech

Fatiamento de Listas com SubList

Parte da seção Fundamentos do Journey de Kotlin da Coddy. Lição 79 de 93.

Às vezes, você precisa extrair uma parte de uma lista em vez de trabalhar com a coleção inteira. O método subList() permite criar uma visão de um intervalo específico de elementos de uma lista existente.

O método subList() recebe dois parâmetros: o índice inicial (inclusivo) e o índice final (exclusivo). Isso significa que o elemento no índice inicial é incluído, mas o elemento no índice final não é:

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

Neste exemplo, subList(1, 4) extrai elementos do índice 1 até (mas sem incluir) o índice 4. Isso nos fornece o segundo, o terceiro e o quarto elementos.

A sublista resultante é uma visão da lista original, não uma cópia. É importante entender isso ao trabalhar com listas mutáveis, pois alterações na lista original podem afetar a sublista.

Para a maioria dos casos de uso com listas somente leitura, você pode simplesmente usá-la para acessar um intervalo de elementos:

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

Desafio

Médio

Você receberá uma lista de inteiros e dois índices que representam um intervalo. Extraia uma sublista usando subList() e imprima a soma dos elementos extraídos.

Formato de entrada:

  • Primeira linha: um inteiro n representando o número de elementos
  • Próximas n linhas: inteiros a serem adicionados à lista
  • Próxima linha: o índice inicial (inclusivo)
  • Última linha: o índice final (exclusivo)

Formato de saída:

Imprima a soma dos elementos da sublista extraída.

Exemplo:

Se a lista for [5, 10, 15, 20, 25] com o índice inicial 1 e o índice final 4, a sublista será [10, 15, 20] e a saída deverá ser 45.

Experimente você mesmo

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: Escreva seu código abaixo
    // Use subList() para extrair elementos de startIndex a endIndex
    // Calcule e imprima a soma dos elementos extraídos
    
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de Kotlin