La biblioteca estándar de Kotlin ayuda a agrupar elementos de colección con la ayuda de funciones de extensión. Agrupar significa recopilar elementos por categoría. Aquí tenemos una función groupBy() que toma la función lambda y devuelve un mapa. En este mapa, cada clave es el resultado de lambda y el valor correspondiente es la lista de elementos.
También podemos usar la función groupBy() con la segunda expresión lambda, que también se llama función de transformación de valor. Si usamos dos funciones lambda, la clave producida de keySelector se asigna con los resultados de la función de transformación de valor en lugar de los elementos originales.
Programa Kotlin para demostrar el uso de la función groupBy() –
fun main(args: Array<String>) { val fruits = listOf("apple", "apricot", "banana", "cherries", "berries", "cucumber") println(fruits.groupBy { it.first().toUpperCase() }) println(fruits.groupBy(keySelector = { it.first() }, valueTransform = { it.toUpperCase() })) }
Producción:
{A=[apple, apricot], B=[banana, berries], C=[cherries, cucumber]} {a=[APPLE, APRICOT], b=[BANANA, BERRIES], c=[CHERRIES, CUCUMBER]}
Si queremos aplicar algunas operaciones a los elementos del grupo, se puede hacer aplicando la función a todos los grupos a la vez con la ayuda de la función groupingBy() . Se devolverá una instancia de tipo de agrupación.
Podemos realizar estas operaciones en grupos:
- eachcount(): cuenta los elementos de cada grupo.
- fold() y reduce(): realice estas operaciones en cada grupo por separado y devuelva el resultado.
- agregado(): es una forma genérica de agrupar significa aplicar una operación específica posteriormente a todos los elementos en cada grupo y devuelve el resultado. Por lo tanto, se utiliza para implementar operaciones personalizadas.
Programa Kotlin para demostrar la función groupingBy() –
fun main(args: Array<String>) { val fruits = listOf("apple", "apricot", "banana", "cherries", "berries", "cucumber") println(fruits.groupingBy { it.first() }.eachCount()) }
Producción:
{a=2, b=2, c=2}
Publicación traducida automáticamente
Artículo escrito por naman_gupta_ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA