Inicialización de arrays en Kotlin: 5 formas con ejemplos de código

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Arrays en Kotlin: no temas, es sencillo

\n\n

Si estás migrando de Java a Kotlin o recién empiezas a aprender este lenguaje moderno, la pregunta «cómo inicializar un array en Kotlin con valores» surge casi de inmediato. En Stack Overflow, este tema ha acumulado miles de visitas, lo que indica que es realmente importante.

\n\n

La buena noticia: Kotlin ha hecho que trabajar con arrays sea mucho más cómodo que en Java. La mala noticia: hay varias formas, y los principiantes suelen confundirse. Analicemos de una vez por todas todas las opciones de inicialización de arrays en Kotlin, de lo simple a lo complejo, con ejemplos de código reales.

\n\n

1. La forma más simple: arrayOf()

\n\n

La función arrayOf() es tu pan de cada día. Crea un array a partir de los valores proporcionados, determinando automáticamente el tipo.

\n\n
// Array de números enteros\nval numbers = arrayOf(1, 2, 3, 4, 5)\n\n// Array de strings\nval fruits = arrayOf("manzana", "plátano", "naranja")\n\n// Array de tipo mixto (Any)\nval mixed = arrayOf(42, "Kotlin", true)\n\nprintln(numbers.contentToString()) // [1, 2, 3, 4, 5]\nprintln(fruits.contentToString())   // [manzana, plátano, naranja]\n
\n\n

Importante: arrayOf() crea un Array<T> — un array de objetos. Si necesitas tipos primitivos (int, char, boolean) por rendimiento, sigue leyendo.

\n\n

2. Arrays primitivos: intArrayOf(), doubleArrayOf() y otros

\n\n

Kotlin ofrece funciones especializadas para cada tipo primitivo. Ahorran memoria y funcionan más rápido:

\n\n
// Números enteros\nval intArr = intArrayOf(10, 20, 30, 40, 50)\n\n// Números de punto flotante\nval doubleArr = doubleArrayOf(1.5, 2.7, 3.14)\n\n// Valores booleanos\nval boolArr = booleanArrayOf(true, false, true)\n\n// Caracteres\nval charArr = charArrayOf('K', 'o', 't', 'l', 'i', 'n')\n\n// Bytes\nval byteArr = byteArrayOf(0x48, 0x65, 0x6C, 0x6C, 0x6F) // "Hello"\n\nprintln(intArr.joinToString()) // 10, 20, 30, 40, 50\n
\n\n

Lista completa: intArrayOf, doubleArrayOf, floatArrayOf, longArrayOf, shortArrayOf, byteArrayOf, booleanArrayOf, charArrayOf.

\n\n

¿Cuándo usarlos? Si trabajas con grandes volúmenes de datos o escribes código de alto rendimiento, usa arrays primitivos. Para tareas comunes, arrayOf() es más que suficiente.

\n\n

3. Constructor de array: Array(size) con lambda

\n\n

La forma más flexible de inicializar un array en Kotlin es usar el constructor con una expresión lambda. Especificas el tamaño y la regla de llenado:

\n\n
// Cuadrados de números del 0 al 4\nval squares = Array(5) { i -> i * i }\nprintln(squares.contentToString()) // [0, 1, 4, 9, 16]\n\n// Array de 10 números aleatorios\nimport kotlin.random.Random\nval randoms = Array(10) { Random.nextInt(100) }\nprintln(randoms.contentToString()) // [42, 17, 83, 5, 91, ...]\n\n// Array de strings con plantilla\nval labels = Array(3) { index -> "Elemento #${index + 1}" }\nprintln(labels.contentToString()) // [Elemento #1, Elemento #2, Elemento #3]\n
\n\n

La lambda recibe el índice del elemento (de 0 a size-1) y debe devolver el valor. Es una herramienta poderosa: puedes llenar el array con cualquier regla, incluyendo llamadas a funciones.

\n\n

4. arrayOfNulls() — array con celdas vacías

\n\n

A veces necesitas crear un array y llenarlo después. Para eso está arrayOfNulls():

\n\n
// Array de 5 elementos null\nval nullArray = arrayOfNulls<String>(5)\nprintln(nullArray.contentToString()) // [null, null, null, null, null]\n\n// Lo llenamos después\nnullArray[0] = "Primero"\nnullArray[2] = "Tercero"\nprintln(nullArray.contentToString()) // [Primero, null, Tercero, null, null]\n
\n\n

El tipo debe especificarse explícitamente — el compilador

Blogs

Book Recommendations