Por Lucas Trubiano - Data Engineer | Profesor y Consultor
<aside> 💡 Para documentación oficial ir a:
</aside>
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)
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)
Para ver más métodos consultar en:
Aquí hay algunos de los más comunes:
apply(x: T, xs: T*): Array[T]
val array = Array(1, 2, 3) // Crear un array de enteros
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
copy(src: AnyRef, srcPos: Int, dest: AnyRef, destPos: Int, length: Int): Unit
System.arraycopy
en Java.val sourceArray = Array(1, 2, 3)
val destinationArray = new Array[Int](3)
Array.copy(sourceArray, 0, destinationArray, 0, 3) // Copiar sourceArray en destinationArray
empty[T]: Array[T]
val emptyArray = Array.empty[Int] // Crear un array vacío de enteros
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
fill[T](n: Int)(elem: => T): Array[T]
val filledArray = Array.fill(4)("Hello") // Crear un array de 4 elementos con el valor "Hello"
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