03. Kotlin – Funciones, Arrays, For, Set, List y Maps

1. Funciones

fun main(args: Array<String>) {
    showMyName()
}

fun showMyName(){
    println("Me llamo Javi")
}

Funciones con parámetros de entrada

fun main(args: Array<String>) {
    showMyInformation("Javi", "Profe", 55)
}
fun showMyInformation(name: String, prof: String, age: Int){
    println("Me llamo $name soy $prof y tengo $age años.")
}

Funciones con parámetros de entrada por defecto

fun main() {
    muestra()
}

fun muestra(nombre:String = "SIN NOMBRE"){
    println(nombre)
}

Funciones con parámetros de salida

fun main(args: Array<String>) {
    var result = add(5, 10)
    println(result)
}

fun add(a: Int, b: Int) : Int{
    return a + b
}

2. Arrays

val weekDays = arrayOf("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo")

val numeros: Array<Int> = arrayOf(1, 2, 3, 4, 5)

println(weekDays.get(0))

    if(weekDays.size >= 8){
        println(weekDays.get(7))
    }else{
        println("no tiene más parámetros el array")
    }
weekDays.set(0, "Horrible lunes") //Contenía Lunes


val primerNumero = numeros[0]
println("El primer número es: $primerNumero")

Recorriendo Arrays

val weekDays = arrayOf("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo")
    for (posicion in weekDays.indices){
        println(weekDays.get(posicion))
    }

    for ((posicion, valor) in weekDays.withIndex()) {
        println("La posición $posicion contiene el valor $valor")
    }

for (weekDay in weekDays) {
      println(weekDay)
  }

3. Bucles For

// Iteración ascendente
for (i in 1..5) {
    println(i)
}

// Iteración descendente
for (i in 5 downTo 1) {
    println(i)
}


// Iteración con incremento
for (i in 0 until 10 step 2) {
    println(i)
}

// Iteración con decremento
for (i in 10 downTo 0 step 2) {
    println(i)
}

Iterando un colección

val lista = arrayOf("a", "b", "c")

for (elemento in lista) {
    println(elemento)
}

for ((indice, elemento) in lista.withIndex()) {
    println("Elemento en el índice $indice: $elemento")
}
 var recibos: Array<String> = arrayOf("luz","agua","gas")
        recibos.set(0,"telefono")
        recorrer_array(recibos)
}

    fun recorrer_array(a:Array<String>){
        for (i in a)
            println(i);
}

 fun recorrer_array(a:Array<String>){
        for (i in a.indices)
            println(a.get(i))
    }

 fun recorrer_array(a:Array<String>){
        for (i in 0..a.size-1)
            println("El recibo ${i+1} es el ${a.get(i)}")
    }

 fun recorrer_array(a:Array<String>){
        for (i in 0 until a.size)
            println("El recibo ${i+1} es el ${a.get(i)}")
    }

Recorriendo una matriz

var matriz = arrayOf(
            intArrayOf(1,2,3),
            intArrayOf(4,5,6,66),
            intArrayOf(7,8,9,10,11),
            intArrayOf(20,21)
        )

        for (i in 0 until matriz.size step 1) {
            for (j in 0 until matriz[i].size step 1)
                println(matriz[i][j])
            println("----")
        }

        for (h in (0 until matriz.size)) {
            for (x in (0 until matriz[h].size))
                println("Posición [$h][$x] es ${matriz[h][x]}")
            println("**")
        }

4. Set inmutable

val numeros: Set<Int> = setOf(1, 2, 3, 4, 5, 1, 2)

println(numeros) // Imprime: [1, 2, 3, 4, 5]
println(numeros.size) //Imprime: 5

// Verificar si un elemento está presente en el set
val contieneTres = numeros.contains(3)
println(contieneTres) // Imprime: true

// Agregar elementos a un set
val nuevosNumeros = numeros.plus(6)
println(nuevosNumeros) // Imprime: [1, 2, 3, 4, 5, 6]

// Eliminar elementos de un set
val numerosSinDos = numeros.minus(2)
println(numerosSinDos) // Imprime: [1, 3, 4, 5]

// Operaciones entre sets
val otrosNumeros = setOf(4, 5, 6, 7, 8)
val union = numeros.union(otrosNumeros)
println(union) // Imprime: [1, 2, 3, 4, 5, 6, 7, 8]

val interseccion = numeros.intersect(otrosNumeros)
println(interseccion) // Imprime: [4, 5]

val diferencia = numeros.subtract(otrosNumeros)
println(diferencia) // Imprime: [1, 2, 3]

5. Set mutables

val numeros: MutableSet<Int> = mutableSetOf(1, 2, 3, 4, 5)

println(numeros) // Imprime: [1, 2, 3, 4, 5]
println(numeros.size) //Imprime: 5

// Agregar un elemento al set
numeros.add(6)
println(numeros) // Imprime: [1, 2, 3, 4, 5, 6]

// Eliminar un elemento del set
numeros.remove(2)
println(numeros) // Imprime: [1, 3, 4, 5, 6]

// Verificar si un elemento está presente en el set
val contieneTres = numeros.contains(3)
println(contieneTres) // Imprime: true

// Iterar sobre los elementos del set
for (numero in numeros) {
    println(numero)
}

// Borrar todos los elementos del set
numeros.clear()
println(numeros) // Imprime: []

6. List inmutables

val numeros: List<Int> = listOf(1, 2, 3, 4, 5)

println(numeros) // Imprime: [1, 2, 3, 4, 5]

// Acceder a un elemento de la lista
val primerNumero = numeros[0]
println(primerNumero) // Imprime: 1

// Iterar sobre los elementos de la lista
for (numero in numeros) {
    println(numero)
}
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]

val a = readOnly.filter { it == "Lunes" || it == "Juernes" }

fun main() {

    val readOnly: List<String> = listOf("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo")

    val a=readOnly.filter { it.contains('a') }
    println(a)
}


fun main() {
    val readOnly: List<String> = listOf("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo")
    readOnly.forEach { println(it) }
 readOnly.forEach { dias -> println(dias) }
}

7. List mutables

val numeros: MutableList<Int> = mutableListOf(1, 2, 3, 4, 5)

println(numeros) // Imprime: [1, 2, 3, 4, 5]

// Agregar elementos a la lista
numeros.add(6)
println(numeros) // Imprime: [1, 2, 3, 4, 5, 6]

// Eliminar elementos de la lista
numeros.removeAt(2)
println(numeros) // Imprime: [1, 2, 4, 5, 6]

// Modificar un elemento de la lista
numeros[3] = 7
println(numeros) // Imprime: [1, 2, 4, 7, 6]

// Iterar sobre los elementos de la lista
for (numero in numeros) {
    println(numero)
}
var mutableList: MutableList<String> = mutableListOf()
   mutableList.none() //Nos devuelve un true si está vacía la lista
   mutableList.firstOrNull() //Nos devolverá el primer campo, y si no hay, un null.
   mutableList.elementAtOrNull(2) //El elemento del índice 2, si no hay, devolverá un null
   mutableList.lastOrNull() //Último valor de la lista o null
   mutableList.last() //Último valor de la lista

fun main() {
    val dias:MutableList<String> = mutableListOf("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo")
    dias.add("Otro dia")
    dias.add(1, "Nuevo dia")
    dias.forEach { println(it) }
}

fun main() {
val dias:MutableList<String> = mutableListOf()

    if (dias.isEmpty())
        println("no hay nada")
    else
        dias.forEach { println(it) }

    if (dias.isNotEmpty())
        dias.forEach { println(it) }

}

8. Map inmutable y mutable

var mapa: Map<Int,String> = mapOf(
    1 to "España",
    2 to "Mexico",
    3 to "Colombia"
)
println(mapa) //{1=España, 2=Mexico, 3=Colombia}
        println(mapa[2]) //Mexico
val capitales: MutableMap<String, String> = mutableMapOf(
    "España" to "Madrid",
    "Francia" to "París",
    "Italia" to "Roma",
    "Alemania" to "Berlín"
)

println(capitales) // Imprime: {España=Madrid, Francia=París, Italia=Roma, Alemania=Berlín}

// Agregar un nuevo par clave-valor
capitales["Inglaterra"] = "Londres"
println(capitales) // Imprime: {España=Madrid, Francia=París, Italia=Roma, Alemania=Berlín, Inglaterra=Londres}

// Modificar el valor de una clave existente
capitales["Italia"] = "Florencia"
println(capitales) // Imprime: {España=Madrid, Francia=París, Italia=Florencia, Alemania=Berlín, Inglaterra=Londres}

// Eliminar un par clave-valor
capitales.remove("Francia")
println(capitales) // Imprime: {España=Madrid, Italia=Florencia, Alemania=Berlín, Inglaterra=Londres}

// Iterar sobre los pares clave-valor del MutableMap
for ((pais, capital) in capitales) {
    println("La capital de $pais es $capital")
}

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *