List vs MutableList
Parte da seção Fundamentos do Journey de Kotlin da Coddy. Lição 67 de 93.
Até agora, você trabalhou com variáveis individuais que armazenam valores únicos. Mas e se você precisar armazenar uma coleção de itens, como uma lista de nomes ou uma sequência de números? É aí que entram as listas.
O Kotlin fornece dois tipos de listas: List e MutableList. A principal diferença é se você pode modificar a lista depois de criá-la.
Uma List é somente para leitura. Sua interface não expõe operações para adicionar, remover ou substituir elementos. Isso não é uma garantia de imutabilidade profunda: o mesmo objeto mutável subjacente poderia ser alterado por meio de outra referência:
val fruits = listOf("Apple", "Banana", "Cherry")
val numbers = listOf(1, 2, 3, 4, 5)Uma MutableList permite modificações. Você pode adicionar novos elementos, remover os existentes ou atualizar valores:
val fruits = mutableListOf("Apple", "Banana")
fruits.add("Cherry") // Agora contém: Apple, Banana, CherryUse listOf() quando seus dados não devem mudar e mutableListOf() quando você precisar de flexibilidade. Essa distinção ajuda a evitar modificações acidentais e torna a intenção do seu código mais clara.
Desafio
MédioCrie uma lista somente leitura chamada colors contendo três strings: "Red", "Green" e "Blue".
Em seguida, crie uma lista mutável chamada numbers começando com dois números inteiros: 10 e 20.
Adicione o valor 30 à lista numbers.
Por fim, imprima ambas as listas em linhas separadas, nesta ordem:
- A lista
colors - A lista
numbers
Experimente você mesmo
fun main() {
// TODO: Crie uma lista somente leitura chamada 'colors' com "Red", "Green", "Blue"
// TODO: Crie uma lista mutável chamada 'numbers' com 10 e 20
// TODO: Adicione 30 à lista numbers
// TODO: Imprima ambas as listas em linhas separadas (colors primeiro, depois numbers)
}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
4Operadores – Parte 1
Operadores aritméticosOperador móduloAtribuição aumentadaOperadores de comparaçãoRecapitulação – Matemática simples7Entrada e Saída Básicas
Função PrintlnTemplates de StringEntrada com ReadLineConversão de TiposRevisão - Anos até a AposentadoriaRevisão - Verdadeiro ou Falso10Funções
Declare uma funçãoParâmetros e argumentosValores de retornoArgumentos nomeadosValores padrãoFunções de expressão únicaRecapitulação — função SigmaRecapitulação — função de validação2Variáveis
Val vs VarInferência de TiposNúmerosStringBooleanoConvenções de NomenclaturaRecapitulação - Inicializar Variáveis5Operadores – Parte 2
Operadores lógicos – Parte 1Operadores lógicos – Parte 2Operadores lógicos – Parte 3Ternário com expressão ifRecapitulação – Lógica simples8Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo a Entrada11FizzBuzz com uma Reviravolta
Visão Geral do JogoA Função FizzBuzz3Nullabilidade
O que é Null SafetyTipos anuláveisOperador de chamada seguraOperador ElvisNoções básicas do desafio de funçõesAsserção de não nuloRecapitulação - Acesso seguro6Tomada de Decisões
Instrução IfIf - ElseIf como ExpressãoExpressão WhenWhen com IntervalosRecapitulação - Calculadora Simples9Laços de Repetição
Laço ForLaço WhileLaço Do-WhileBreakContinueIntervalos em LaçosLaço AninhadoRecapitulação - FatorialRecapitulação - Entrada Dinâmica12Fundamentos de Listas
List vs MutableListAcessando ElementosModificando ListasMétodos de ListaPair e TripleRecapitulação - Lista de ProdutosRecapitulação - Lista Invertida15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do ProgramaPratique por conta própria: Playground de Kotlin