1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
// Programa: Inicialización de arrays en Kotlin fun main() { // 1. Inicialización básica usando arrayOf() // Puedes crear un array con elementos definidos directamente usando arrayOf(). val arrayEnteros = arrayOf(1, 2, 3, 4, 5) println("Array de enteros: ${arrayEnteros.joinToString()}") // 2. Inicialización de arrays tipados // arrayOf() también permite definir el tipo de datos explícitamente. val arrayStrings: Array<String> = arrayOf("Kotlin", "Java", "Python") println("Array de Strings: ${arrayStrings.joinToString()}") val arrayDoubles: Array<Double> = arrayOf(1.1, 2.2, 3.3) println("Array de Doubles: ${arrayDoubles.joinToString()}") // 3. Inicialización de arrays vacíos // Un array vacío con un tipo explícito puede ser inicializado sin elementos. val arrayVacio: Array<String> = arrayOf() // Array vacío de Strings println("Array vacío: ${arrayVacio.joinToString()}") // 4. Inicialización de arrays con tamaño fijo // Usando Array(tamaño) { inicialización }, puedes crear un array de tamaño fijo con un valor inicial. val arrayTamañoFijo = Array(5) { 0 } // Crea un array de 5 enteros, todos inicializados a 0. println("Array de tamaño fijo: ${arrayTamañoFijo.joinToString()}") // 5. Inicialización con función lambda // Puedes inicializar cada elemento de un array usando una función lambda. val arrayLambda = Array(5) { it * 2 } // Cada elemento es el doble de su índice. println("Array inicializado con lambda: ${arrayLambda.joinToString()}") // 6. Inicialización con funciones especializadas // Kotlin proporciona funciones especializadas para crear arrays de tipos primitivos. val intArray = intArrayOf(1, 2, 3, 4, 5) // Array de enteros primitivos val doubleArray = doubleArrayOf(1.1, 2.2, 3.3) // Array de doubles primitivos val booleanArray = booleanArrayOf(true, false, true) // Array de booleanos primitivos println("intArray: ${intArray.joinToString()}") println("doubleArray: ${doubleArray.joinToString()}") println("booleanArray: ${booleanArray.joinToString()}") // 7. Inicialización de arrays multidimensionales // Aquí mostramos un array bidimensional (2D) con valores predefinidos. val array2D = arrayOf( arrayOf(1, 2, 3), arrayOf(4, 5, 6), arrayOf(7, 8, 9) ) println("Array 2D:") for (fila in array2D) { println(fila.joinToString()) } // 8. Inicialización dinámica de arrays de varias dimensiones // Usamos una lambda para inicializar un array tridimensional (3D). val array3D = Array(2) { Array(3) { IntArray(3) { (it + 1) * 2 } } } println("Array 3D inicializado dinámicamente:") for (capa in array3D) { for (fila in capa) { println(fila.joinToString()) } println("--- Fin de capa ---") } // 9. Inicialización de arrays con valores calculados // Puedes inicializar arrays con cálculos complejos usando una lambda. val arrayCalculado = Array(5) { i -> i * i } // Cada elemento es el cuadrado de su índice. println("Array inicializado con valores calculados: ${arrayCalculado.joinToString()}") // 10. Inicialización de arrays de objetos // Los arrays pueden contener objetos complejos, no solo tipos primitivos. data class Persona(val nombre: String, val edad: Int) val arrayDePersonas = arrayOf( Persona("Juan", 30), Persona("Ana", 25), Persona("Luis", 28) ) println("Array de objetos Persona:") arrayDePersonas.forEach { persona -> println("${persona.nombre}, ${persona.edad} años") } // Fin del programa } |