Combinar dos colecciones en Kotlin

Kotlin es un lenguaje de programación de propósito general tipificado estáticamente desarrollado por JetBrains, que ha creado IDE de clase mundial como IntelliJ IDEA, PhpStorm, Appcode, etc. Fue presentado por primera vez por JetBrains en 2011 y es un nuevo lenguaje para JVM. Kotlin es un lenguaje orientado a objetos y un «lenguaje mejor» que Java, pero aún así es totalmente interoperable con el código Java. En este artículo, veremos cómo fusionar dos o más colecciones en una sola. Sin embargo, antes de seguir adelante, debemos comprender la diferencia entre los tipos mutables e inmutables. Un tipo de objeto inmutable es un objeto que no se puede cambiar. Por ejemplo, si definimos una lista inmutable, no podremos agregarle otros objetos. 

Ejemplo

Puedes crear una lista en Kotlin con el método listof. Sin embargo, la lista devuelta por este método es una lista inmutable, por lo que necesitamos crear una lista mutable para agregarle objetos. Veamos los pasos mencionados:

Paso 1. Vamos a crear dos listas, listA y listB, de la siguiente manera

var listA= mutableListof<String> ("a","a","b")
var listB= mutableListOf<String> ("a", "c")

Si la declaración de tipo se infiere de los objetos dentro del método listOf/mutableListof, no necesitaremos declarar la declaración de tipo explícitamente. Entonces, el código anterior se reescribirá como mutableListOf («a», «a», «b»).

Paso 2. Ahora, intentaremos agregar los contenidos de listA en listB. Para ello, necesitaremos el método addAll():

Kotlin

fun main (args: Array <String>) {
  val listA= mutableListof<String> ("a", "a", "b")
  val lists- mutableListof<String> ("a", "c")
  listB.addAll(listA)
  println(listB)
}

Producción:

[a, c, a, a, b]

Paso 3. Otra forma de fusionar dos listas es usando union. Esto devuelve los elementos únicos de la colección combinada.

Kotlin

fun main (args: Array<String>) {
  val listA = mutableListof<String>("a","a","b")
  val listB = mutableListOf<String>("a","c")
  val listC = listB.union(listA)
  println(listC)
}

Producción:

[a, c, b]

Paso 4. Del mismo modo, los conjuntos mutables también se pueden fusionar, la única diferencia es que addAll en un conjunto será similar a lo que recibiremos con el método de unión; dado que es un conjunto, solo se permite un valor único:

Kotlin

val setA= mutableSetOf<String> ("a", "b","c")
val setB= mutableSetOf<String>("a", "b","c","d")
setB.addAll(setA)
println(setB)
println (sets.union(setA))

Producción:

[a, b, c, d]
[a, b, c, d]

Si desea fusionar dos mapas, necesitará el método putAll ( ), ya que addAll y union no están presentes para el mapa:

Kotlin

val mapA= mutableMapof <String, Int> ("a" to 1, "b" to 2)
val mapB= mutableMapOf<String, Int> ("a" to 2, "d" to 4)
mapA.putAll(mapB)
println(mapA)

Producción:

(a=2, b=2, d=4}

Observe que la clave a se definió en ambos mapas, pero la que viene después (en este caso, mapB) gana.

Publicación traducida automáticamente

Artículo escrito por eralokyadav2019 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 *