Por Lucas Trubiano - Data Engineer | Profesor y Consultor

<aside> 💡 Para documentación oficial ir a:

Collections Types

</aside>

Matrices de longitud fija

En Scala, las matrices son colecciones de elementos del mismo tipo. Las matrices de longitud fija se declaran con un tamaño específico y no pueden cambiar de tamaño una vez creadas. Son eficientes y ocupan menos espacio en memoria.

val miMatriz = Array(1, 2, 3, 4, 5)

Matrices de longitud variable: búfer de matriz

Las matrices de longitud variable, conocidas como "Array Buffers", permiten agregar o quitar elementos dinámicamente. Son útiles cuando necesitas una colección que pueda cambiar de tamaño.

import scala.collection.mutable.ArrayBuffer

val miBuffer = ArrayBuffer(1, 2, 3)
miBuffer += 4 // Agregar un elemento
miBuffer -= 2 // Quitar un elemento

// También podemos
var myMatrix = Array.ofDim[Int](3,3)

// Concatenar arrays
var myList1 = Array(1.9, 2.9, 3.4, 3.5)
var myList2 = Array(8.9, 7.9, 0.4, 1.5)

var myList3 =  myList1 ++ myList2
myList3.foreach(println)

// Crear array a partir de rango
import Array._
var myList1 = range(10, 20, 2)

Métodos de Arrays

Para ver más métodos consultar en:

Scala - Arrays

Aquí hay algunos de los más comunes:

  1. apply(x: T, xs: T*): Array[T]

    val array = Array(1, 2, 3)  // Crear un array de enteros
    
  2. concat[T](xss: Array[T]*): Array[T]

    val array1 = Array(1, 2, 3)
    val array2 = Array(4, 5, 6)
    val concatenatedArray = Array.concat(array1, array2)  // Concatenar array1 y array2
    
  3. copy(src: AnyRef, srcPos: Int, dest: AnyRef, destPos: Int, length: Int): Unit

    val sourceArray = Array(1, 2, 3)
    val destinationArray = new Array[Int](3)
    Array.copy(sourceArray, 0, destinationArray, 0, 3)  // Copiar sourceArray en destinationArray
    
  4. empty[T]: Array[T]

    val emptyArray = Array.empty[Int]  // Crear un array vacío de enteros
    
  5. iterate[T](start: T, len: Int)(f: T => T): Array[T]

    val result = Array.iterate(1, 5)(_ * 2)  // Crear un array con 5 valores, duplicando el valor anterior
    
  6. fill[T](n: Int)(elem: => T): Array[T]

    val filledArray = Array.fill(4)("Hello")  // Crear un array de 4 elementos con el valor "Hello"
    
  7. fill[T](n1: Int, n2: Int)(elem: => T): Array[Array[T]]

    val twoDArray = Array.fill(3, 2)(0)  // Crear una matriz 3x2 llena de ceros