Filtrar una lista en Kotlin

Kailash Vaviya 15 febrero 2024
  1. Usa la función filter() para filtrar una lista en Kotlin
  2. Usa la función filterIndexed() para filtrar una lista en Kotlin
  3. Usa la función filterNot() para filtrar una lista en Kotlin
  4. Usa la función filterIsInstance() para filtrar una lista en Kotlin
  5. Utilice la función filterNotNull() para filtrar una lista en Kotlin
  6. Use la función Partition() para filtrar una lista en Kotlin
Filtrar una lista en Kotlin

Suponga que tiene una colección de detalles de personas y solo desea obtener personas mayores de 20 años de toda la colección. ¿Cómo lo harás? ¡Al filtrar!

El filtrado es un concepto de procesamiento de colecciones en Kotlin. Kotlin permite filtrar colecciones con la ayuda de predicados.

Los predicados son funciones lambda que toman un elemento de una colección y lo comparan con la salida de la función. Si la salida coincide, el predicado devuelve true; en caso contrario, devuelve false.

La biblioteca estándar de Kotlin tiene algunas funciones que permiten filtrar sin cambiar la colección inicial. Por lo tanto, el filtrado es posible con colecciones mutables y de solo lectura.

También podemos usar la colección resultante en funciones u operaciones asignándola a una variable o encadenándolas después de filtrar los resultados requeridos. Este artículo lo guiará a través de diferentes funciones para usar junto con expresiones de predicado para filtrar listas en Kotlin.

Usa la función filter() para filtrar una lista en Kotlin

La función filter() es la función de la biblioteca estándar más básica para filtrar. Acepta una expresión de predicado y devuelve una colección con los elementos que coinciden con el valor ejecutado del predicado.

fun main() {
    val num = arrayListOf("two", "eleven", "eighteen", "thirty-nine", "fourty-five")
    val newNum = num.filter { it.length > 6 }
    println(newNum)
}

Producción:

Utilice la función de filtro de Kotlin

Ejecutar código

Usa la función filterIndexed() para filtrar una lista en Kotlin

La función filter() de Kotlin puede hacer coincidir los valores del predicado y el elemento. Sin embargo, no puede verificar los valores de los elementos en índices específicos.

La función filterIndexed() puede verificar tanto el valor como el índice del elemento de la lista. La expresión de predicado aquí toma dos argumentos: para el índice y el valor.

En este ejemplo, usaremos el mismo código que el anterior. Pero esta vez, solo eliminaremos el elemento cuya longitud sea inferior a 6 y tenga un valor de índice 1.

fun main() {
    val num = arrayListOf("two", "eleven", "eighteen", "thirty-nine", "fourty-five")
    val newNum = num.filterIndexed { index, it -> (index!=1) && (it.length > 6) }
    println(newNum)
}

Use la función indexada de filtro de Kotlin

Ejecutar código

Usa la función filterNot() para filtrar una lista en Kotlin

También podemos aplicar filtros negativos usando la función filterNot para el filtro de Kotlin. Considere el siguiente ejemplo para entender este concepto.

La función filterNot() invierte las operaciones de la función filter(). Devolverá una lista con todos los elementos que arrojarán false contra el predicado.

fun main() {
    val num = arrayListOf("two", "eleven", "eighteen", "thirty-nine", "fourty-five")
    val newNum = num.filterNot { it.length > 6 }
    println(newNum)
}

Usa la función filterNot de Kotlin

Ejecutar código

Usa la función filterIsInstance() para filtrar una lista en Kotlin

Hemos filtrado las listas de Kotlin en función de los valores y los índices hasta ahora. El filterIsInstance() nos permite filtrar según el tipo de datos de los elementos.

Aquí, crearemos una lista de múltiples tipos de datos y luego filtraremos solo los valores de cadena.

fun main() {
    val Str = listOf(12, null, "five", "nine", 11.0)
    println("Print only string values from the list:")
    Str.filterIsInstance<String>().forEach {
        println(it)
    }
}

Producción:

Use la función filterIsInstance de Kotlin

Ejecutar código

Utilice la función filterNotNull() para filtrar una lista en Kotlin

Esta función filtra solo elementos no nulos. Todos los elementos nulos se filtrarán cuando usemos la función filterNotNull() de Kotlin.

Aquí hay un ejemplo de cómo crear una lista con algunos valores nulos y no nulos. Luego usaremos la función filterNotNull() para filtrar solo elementos no nulos en la nueva lista.

fun main() {
    val Num = listOf("twelve", null, null, "fourteen", null, "eighteen")
    Num.filterNotNull().forEach {
        println(it.uppercase())
    }
}

Producción:

Use la función filterNotNull de Kotlin

Ejecutar código

Use la función Partition() para filtrar una lista en Kotlin

Además de la función de filtro, Kotlin también tiene la función partition() que permite filtrar. La principal diferencia entre los dos es el número de listas que devuelven.

La función de filtro devuelve solo una lista con los elementos que coinciden con el predicado. Pero la función partition() devuelve dos listas: una con los elementos que coinciden con el predicado y la otra con los elementos que no coinciden con el predicado.

Crearemos una lista y filtraremos todos los elementos en dos listas separadas usando la función partition().

fun main() {
    val Num = listOf("eleven", "twelve", "thirteen", "seventeen", "eighteen")
    val (matchList, nonMatchList) = Num.partition { it.length < 7 }

    println(matchList)
    println(nonMatchList)
}

Producción:

Usar la función de partición de Kotlin

Ejecutar código

Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn

Artículo relacionado - Kotlin List