Kotlin: descripción general de las operaciones de recopilación

La biblioteca estándar de Kotlin proporciona una amplia gama de funciones para realizar operaciones en las colecciones. Incluye operaciones simples como obtener o agregar elementos y también incluye operaciones más complejas como buscar, ordenar, filtrar, etc.
 

Funciones de miembro y extensión –

Las operaciones de cobro se declaran de dos formas: 
 

  • Funciones de los miembros
  • Funciones de extensión

Funciones de los miembros –

Define las operaciones que son necesarias para un tipo de colección. Por ejemplo, Collection contiene la función isEmpty() para comprobar si está vacío; La lista contiene get() para el acceso de índice a los elementos, y así sucesivamente.
Debemos implementar funciones miembro mientras creamos nuestra propia implementación de la interfaz de colección. Para crear la nueva implementación más fácilmente, podemos usar las implementaciones esqueléticas de las interfaces de colección de la biblioteca estándar de Kotlin como AbstractList , AbstractSet , AbstractMap y también sus contrapartes mutables.
 

Función de extensión –

Todas las operaciones excepto la función miembro se declaran como funciones de extensión. Algunas de estas son funciones de filtrado, transformación, ordenación y otras funciones de procesamiento de colecciones.
 

Operaciones comunes –

Las operaciones comunes están disponibles tanto para colecciones mutables (lectura y escritura) como para solo lectura. Las operaciones comunes se clasifican en estas categorías: 
 

  • Transformaciones
  • Filtración
  • operadores más y menos
  • Agrupamiento
  • Recuperación de piezas de colección
  • Recuperando elementos individuales
  • ordenar
  • operaciones agregadas

Todas las operaciones discutidas anteriormente devuelven sus resultados sin afectar el contenido original de la colección. Por ejemplo, cuando aplicamos la operación de filtro, produce una nueva colección que contiene todos los elementos que coinciden con el predicado de filtrado. Los resultados de estas operaciones deben almacenarse en variables o pueden pasarse a otras funciones.
Programa Kotlin usando la operación de filtro – 
 

Kotlin

fun main() {
    val str = mutableListOf("Geeks", "for", "Geeks", "A", "Computer", "Portal")
 
    // original collection remains same
    str.filter { it.length > 4 }
    println("Original collection elements still unchanged $str")
 
    // result is stored in newStr
    val newStr = str.filter { it.length > 4 }
    println("New Collection obtains after filtering $newStr")
}

Producción: 
 

Original collection elements still unchanged [Geeks, for, Geeks, A, Computer, Portal]
New Collection obtains after filtering [Geeks, Geeks, Computer, Portal]

Para operaciones de recolección limitada, podemos especificar el objeto de destino y es opcional. El destino debe ser una colección mutable a la que la función agregue sus elementos resultantes en lugar de devolverlos en un nuevo objeto. Para realizar estas operaciones con destinos, podemos separar funciones con la notación To postfix en sus nombres, por ejemplo, use filterTo() en lugar de filter()
Programa Kotlin de usar el objeto de destino – 
 

Kotlin

fun main() {
 
    val str = listOf("Geeks", "for", "Geeks", "A", "Computer", "Portal")
 
    //destination object
    val filterResults = mutableListOf<String>()
    str.filterTo(filterResults) { it.length > 5 }
    str.filterIndexedTo(filterResults) { index, _ -> index == 0 }
 
    // filterResults contains results of both operations
    println("Combined Result of both operations $filterResults")
}

Producción: 
 

Combined Result of both operations [Computer, Portal, Geeks]

Como discutimos anteriormente, podemos pasar el resultado de la operación de recolección a otra función y estas funciones devuelven la colección de destino, por lo que podemos crearla directamente en el argumento correspondiente de la llamada a la función:
Programa Kotlin de almacenamiento de resultados en Hashset – 
 

Kotlin

fun main() {
    val str = listOf("Geeks", "for", "Geeks", "A", "Computer", "Portal")
 
    // filter strings right into a new hash set,
    // and eliminating duplicates in the result
    val result = str.mapTo(HashSet()) { it.length }
 
    // print hashset
    println("Only Distinct item length return by hashset $result")
}

Producción: 
 

Only Distinct item length return by hashset [1, 3, 5, 6, 8]

Operaciones de escritura –

También hay operaciones de escritura que pueden cambiar el estado de la colección en el caso de colecciones mutables. Estas operaciones incluyen agregar, eliminar y actualizar elementos en la colección. Las operaciones de escritura se enumeran en Operaciones de escritura y las secciones correspondientes de Operaciones específicas de lista y Operaciones específicas de mapa.
Para operaciones específicas, hay pares de funciones para realizar la misma operación en las colecciones: la primera puede aplicar la operación en el lugar significa realizar la operación en la colección original y la otra devuelve el resultado como una nueva colección separada. 
Por ejemplo: al aplicar la operación sort() , ordena una colección mutable en el lugar, por lo que cambia de estado, pero en caso de sorted()operación, crea una nueva colección que contiene los mismos elementos en el orden ordenado.
Programa Kotlin para usar la operación sort() y sorted() – 
 

Kotlin

fun main() {
    val units = mutableListOf("Ten","Hundred","Thousand","Lakh","Crore")
    // sorted() creates new collection and sort
    val sortedNumbers = units.sorted()
 
    println(units == sortedNumbers) // false
    // sort() sort in same collection
    units.sort()
 
    println(units == sortedNumbers) // true
}

Producción: 
 

false
true

Publicación traducida automáticamente

Artículo escrito por Praveenruhil y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *