List vs MutableList
Parte de la sección Fundamentos del Journey de Kotlin de Coddy. Lección 67 de 93.
Hasta ahora, has trabajado con variables individuales que contienen valores únicos. Pero ¿qué ocurre si necesitas almacenar una colección de elementos, como una lista de nombres o una serie de números? Ahí es donde entran en juego las listas.
Kotlin proporciona dos tipos de listas: List y MutableList. La diferencia clave es si puedes modificar la lista después de crearla.
Una List es de solo lectura. Su interfaz no expone operaciones para añadir, eliminar o reemplazar elementos. Esto no garantiza una inmutabilidad profunda: el mismo objeto mutable subyacente podría cambiar a través de otra referencia:
val fruits = listOf("Apple", "Banana", "Cherry")
val numbers = listOf(1, 2, 3, 4, 5)Una MutableList permite realizar modificaciones. Puedes añadir elementos nuevos, eliminar los existentes o actualizar valores:
val fruits = mutableListOf("Apple", "Banana")
fruits.add("Cherry") // Ahora contiene: Apple, Banana, CherryUsa listOf() cuando tus datos no deban cambiar, y mutableListOf() cuando necesites flexibilidad. Esta distinción ayuda a evitar modificaciones accidentales y hace más clara la intención de tu código.
Desafío
IntermedioCrea una lista de solo lectura llamada colors que contenga tres cadenas: "Red", "Green" y "Blue".
Después, crea una lista mutable llamada numbers que comience con dos enteros: 10 y 20.
Añade el valor 30 a la lista numbers.
Por último, imprime ambas listas en líneas separadas, en este orden:
- La lista
colors - La lista
numbers
Pruébalo tú mismo
fun main() {
// TODO: Crea una lista de solo lectura llamada 'colors' con "Red", "Green", "Blue"
// TODO: Crea una lista mutable llamada 'numbers' con 10 y 20
// TODO: Añade 30 a la lista numbers
// TODO: Imprime ambas listas en líneas separadas (colors primero, luego numbers)
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores, parte 1
Operadores aritméticosOperador móduloAsignación aumentadaOperadores de comparaciónRepaso: matemáticas simples7Entrada y salida básicas
Función PrintlnPlantillas de cadenasEntrada con ReadLineConversión de tiposRepaso - Años hasta la jubilaciónRepaso - Verdadero o falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoArgumentos con nombreValores predeterminadosFunciones de una sola expresiónRepaso - Función SigmaRepaso - Función de validación2Variables
Val frente a VarInferencia de tiposNúmerosCadenaBooleanoConvenciones de nomenclaturaRepaso: inicializar variables5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Operadores lógicos Parte 3Ternario con expresión ifRepaso: lógica simple8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtención de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Nullabilidad
Qué es la seguridad frente a valores nulosTipos anulablesOperador de llamada seguraOperador ElvisConceptos básicos de retos de funcionesAfirmación de no nulidadRepaso: acceso seguro6Toma de decisiones
Sentencia ifIf - ElseIf como expresiónExpresión whenWhen con rangosRepaso - Calculadora simple9Bucles
Bucle ForBucle WhileBucle Do-WhileBreakContinueRangos en buclesBucle anidadoRepaso - FactorialRepaso - Entrada dinámica12Conceptos básicos de las listas
List vs MutableListAcceso a elementosModificación de listasMétodos de listasPair y TripleRepaso - Lista de productosRepaso - Lista invertidaPractica por tu cuenta: Playground de Kotlin