En este tutorial se explica como trabajar con arreglos en Kotlin (array en kotlin), se explica que es y como usar el arrayOf y listOf en Kotlin. Explicamos como declararlos y como acceder a sus valores, asi como algunos elementos importantes.
.
Arreglo en Kotlin arrayOf
Podemos crear un arreglo en Kotlin usando la función arrayOf(), la cual nos creará una variable tipo Array<>.
La sintaxix es muy simple, solo se agregan los elementos y listo. Pueden ser incluso elementos de diferente tipo, podemos convinar, string, doublé, int, etc.
Esta es la sintaxis básica de arrayOf en Kotlin, Kotlin detecta automáticamente el tipo de variable:
var arreglo = arrayOf("Rojo", "Verde", "Amarillo", "Azul") println( arreglo[1] ) //Imprime: “Verde”
Pero también se puede declarar indicando el tipo de variable que contendrá, una declaración de variable más espefica.
var arreglo: Array= arrayOf("Rojo", "Verde", "Amarillo", "Azul") println( arreglo[0] ) //Imprime: “Rojo”
Y el array puede ser de distintos tipos de variables como se muestra en la siguiente imagen.
Para declarar distintos tipos de variables en un mismo arreglo se usa Any, como se muestra a continuación.
.
Imprimiento los valores del arreglo con joinToString()
Podemos imprimir todos los valores de un arreglo usando joinToString(). Este es un ejemplo de su uso:
var arreglo: Array= arrayOf("Rojo", "Verde", "Amarillo", "Azul") println( arreglo.joinToString() ) //Imprime: "Rojo", "Verde", "Amarillo", "Azul"
No es necesario que los valores del arreglo sean tipo String, funciona para arreglos Double, Int, etc.
Imprimiendo tamaño del arreglo con “size”.
Para conocer la cantidad de elementos de un arreglo se usa el comando size. Como se ve en la siguiente imagen:
Arreglos nulos en kotlin (null array).
En Kotlin los valores núlo se trabajan usando el signo de interrogación “?”, este indica que una variable puede tener un valor nulo. Lo mismo ocurre con los arreglos, en la siguiente imagen se muestra la declaración de un arreglo núlo.
Tambien, podemos declarar un arreglo que no sea núlo, pero que pueda contener valores nulos. En este caso el sigono de interrogación “?” se coloca después del tipo de variable, como mostramos a continuación:
Es posible crear un arreglo de valores núlos con la funcion arrayOfNulls( n ), donde n es la cantidad de elementos del arreglo.
.
Iniciando arreglo vacio (lateinit).
Podemos declarar un arreglo vación, usando lateinit,realmente lo que estamos haciendo es indicar que esta variable se inicializará más adelante, por eso no tiene valor.
El problema es que si más adelante no le damos un valor, o queremos usar la variable antes de darle un valor tendremos un error.
En la siguiente imagen se muestra esto.
Agregando valores a un array en Kotlin (plus).
Si tenemos un arreglo ya con valores, pero queremos añadirle más. Lo podemos hacer son el comando plus. Esto es similar a cuando hacemos un contador del tipo “i= i +1”. Pero con arreglos.
En el siguiente ejemplo se agregan 2 valores a un array existente.
Eliminar valores de un array Kotlin.
Para eliminar valores de un arreglo en Kotlin, no hay una función esfecifica que lo haga. Pero podemos implementar distintos métodos para lograrlo. En este ejemplo, lo haremos utilizando un filtro.
El comando filter regresa una variable tipo “List<>”, estamos trabajando con “Array<>” asi que hayq eu guardar el resultado en una variable nueva para evitar errores.
Si queremos continuar trabajando con Array, para convertir de List a Array se usa el comando toTypedArray().
.
Eliminando por contenido del elemento.
Elejimos el valor del elemento a eliminar, luego filtramos todos los elementos del arreglo a exepción del que eliminaremos. Coo de ve en el siguiente ejemplo.
Vemos como se elimina el elemento “Amarillo” del arreglo. En el caso anterior creamos una variable nueva para guardar el arreglo.
La variable a guardar debe se der distinta a la variable original. Ya que el filtro nos regresa una variable tipo “List<>” y teníamos una variable tipo “Array<>”.
.
Eliminando por posición del elemento.
Para poder eliminar una posición del arreglo sin importar su contenido, usamos un filtro. Solo que ahora se utiliza la función indexOf, para saber que posición esta leyendo el filtro. Asi solo guardamos todos los elementos disntintos a la posición a eliminar.
La variable a guardar debe se der distinta a la variable original. Ya que el filtro nos regresa una variable tipo “List<>” y teníamos una variable tipo “Array<>”.
.
Kotlin convertir List a Array.
Para convertir de List<> a un Array<> en Kotlin, se utiliza la función toTypedArray(). En el siguiente ejemplo se muestra como usarlo para poder seguir trabajando con Arrays una vez que eliminemos un valor.
Para convertir de Array a List se usa la función toList().
.
Array de ceros en Kotlin.
Podemos crear arreglos que contengan solamente ceros, y lo podemos hacer para variables tipo Iny y Double. La gran ventaja es que solo debemos indicar la cantidad de elementos no tendremos que escribir uno por uno.
Para un arreglo tipo entero (Int) que contenga 4 elementos con valor de 0, se hace lo siguiente:
Se puede hacer lo mismo para un arreglo tipo Double.
Desordenar arreglo en Kotlin (shuffle array Kotlin).
Para cambiar el orden de manera aleatoria de los elementos de un arreglo en Kotlin, se usa en comando shuffle. Después de aplicar este comando a un array sus elementos estarán ordenados aleatoriamente.
En la iágen anterior al declarer el arreglo vemos el orden que tienen sus elementos.
Luego usamos el comando shuffle().
Imprimimos el arreglo y observamos que estan ordenados de manera distinta.
.
Kotlin arreglo anidado o múltiple (Multidimencional or nested array)
En Kotlin se pueden crear arreglos multidimensionales o anidados (nested array). Estos arreglos son parecidos a una matriz de valores. Básicamente crearemos un arreglo dentro de otro, asi tendremos filas y columnas.
En el siguiente ejemplo, se muestra como creamos un arreglo 3×3, para llamar a uno de sus valores necesitaremos 2 posiciónes, la primera indica cual de los arreglos elegimos (filas), la segunda la posición dentro del arreglo (columnas).
var arreglo: Array= arrayOf( arrayOf("Rojo", "Amarillo", "Azul"), arrayOf("Manzana", "Naranja", "Limón"), arrayOf("A", "B", "C",) ) println( arreglo[1][0] ) //Imprime: "Manzana"
El arreglo puede contener valores de distintos tipos de variable Int, Double, String, etc. Como se ve en la siguiente imagen.
Si se requiere la declaración más especifica, es decir, indicando el tipo de variable. Lo podemos hacer como se muestra en la siguiente imagen.
Para más tutoriales de Kotlin ve a este enlace.
Algunos temás que pueden ser de su interés: