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 86 87 88 |
// Programa: Arrays y estructuras de datos complejas en Kotlin fun main() { // 1. Creación de un array simple // Un array en Kotlin puede ser creado usando la función arrayOf(). Este es un array de enteros. val arraySimple = arrayOf(1, 2, 3, 4, 5) println("Array simple: ${arraySimple.joinToString()}") // 2. Acceso a elementos del array // Los elementos de un array se acceden usando su índice (comienza en 0) println("Primer elemento del array: ${arraySimple[0]}") println("Último elemento del array: ${arraySimple[arraySimple.size - 1]}") // 3. Modificación de elementos en un array // Un array es mutable, por lo que podemos modificar los valores en un índice específico arraySimple[2] = 10 println("Array modificado: ${arraySimple.joinToString()}") // 4. Creación de arrays tipados // Podemos especificar explícitamente el tipo de datos del array val arrayDeStrings: Array<String> = arrayOf("Kotlin", "Java", "Python") println("Array de Strings: ${arrayDeStrings.joinToString()}") // 5. Array con tamaño fijo y valores predeterminados // Crear un array de tamaño fijo con un valor inicial val arrayFijo = Array(5) { 0 } // Crea un array de enteros con 5 elementos inicializados a 0 println("Array de tamaño fijo: ${arrayFijo.joinToString()}") // 6. Estructuras más complejas: Arrays bidimensionales // Los arrays en Kotlin pueden ser multidimensionales. Aquí un ejemplo de array bidimensional (matriz). val arrayBidimensional = arrayOf( arrayOf(1, 2, 3), arrayOf(4, 5, 6), arrayOf(7, 8, 9) ) println("Array bidimensional: ") for (fila in arrayBidimensional) { println(fila.joinToString()) } // 7. Estructura más compleja: Array de objetos // Los arrays pueden contener cualquier tipo de objeto, incluidos objetos personalizados. data class Persona(val nombre: String, val edad: Int) val arrayDeObjetos = arrayOf( Persona("Juan", 30), Persona("Ana", 25), Persona("Luis", 28) ) println("Array de objetos: ") arrayDeObjetos.forEach { persona -> println("${persona.nombre}, ${persona.edad} años") } // 8. Uso de arrays con funciones de orden superior // Podemos usar funciones de orden superior como map, filter, etc. para manipular arrays val numeros = arrayOf(1, 2, 3, 4, 5) val numerosDoblados = numeros.map { it * 2 } println("Números doblados: ${numerosDoblados.joinToString()}") // 9. Arrays inmutables vs mutables // Un array siempre es mutable, pero si necesitas una colección inmutable, puedes usar List val listaInmutable = listOf(1, 2, 3) // Esta lista no puede ser modificada println("Lista inmutable: ${listaInmutable.joinToString()}") val listaMutable = mutableListOf(1, 2, 3) listaMutable.add(4) // Podemos modificarla añadiendo elementos println("Lista mutable después de añadir un elemento: ${listaMutable.joinToString()}") // 10. Uso de listas enlazadas (LinkedList) // Kotlin también ofrece listas enlazadas mediante la clase LinkedList (de Java). val linkedList = java.util.LinkedList<Int>() linkedList.add(1) linkedList.add(2) linkedList.add(3) println("Lista enlazada: ${linkedList.joinToString()}") // 11. Uso de mapas (Map) para almacenar pares clave-valor // Un mapa es una estructura de datos que asocia claves con valores. val mapa = mapOf("Kotlin" to 1, "Java" to 2, "Python" to 3) println("Mapa (clave-valor): $mapa") // 12. Uso de sets (conjuntos) // Un set es una colección que no permite duplicados. val conjunto = setOf(1, 2, 3, 3, 4, 4, 5) // Los duplicados se eliminan println("Conjunto (sin duplicados): ${conjunto.joinToString()}") // Fin del programa } |