++Tipos de listas++ Las colecciones se pueden clasificar en dos grandes grupos, las mutables e inmutables. Es decir, las que se pueden editar (mutables) y las que son solo de lectura (inmutable).
Listas inmutables La declaración de una lista inmutable sería así.
val readOnly: List<String> = listOf("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo")
Existen varias funciones útiles para trabajar con ellas.
val readOnly: List<String> = listOf("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo")
readOnly.size //Muestra el tamaño de la lista
readOnly.get(3) //Devuelve el valor de la posición 3
readOnly.first() //Devuelve el primer valor
readOnly.last() //Devuelve el último valor
println(readOnly) //[Lunes, Martes, Miércoles, Jueves, Viernes, Sábado, Domingo]
Como pueden ver podemos trabajar completamente con ellas, a excepción de añadir más elementos.
También podemos filtrar usando el patrón iterator, que es un mecanismo para acceder a los elementos de la lista, por ejemplo .first() o .last()
val a = readOnly.filter { it == "Lunes" || it == "Juernes" }
El .filter nos permite filtrar en la lista a través de una o varias condiciones que pongamos. Para ello llamamos a it (iterator) y buscaremos en la lista, si contiene la palabra «Lunes» o «Juernes«. En este caso solo pintará «Lunes«.
Listas mutables Ahora nos toca hablar de las más interesantes, las listas mutables, que poseen todo lo anterior, pero también nos da la posibilidad de ir rellenando la lista a medida que lo necesitemos, el único inconveniente es que más ineficiente con la memoria.
var mutableList: MutableList<String> = mutableListOf("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado")
println(readOnly) //[Lunes, Martes, Miércoles, Jueves, Viernes, Sábado]
mutableList.add("domingo")

