Colecciones Scala - Array
Scala proporciona una estructura de datos, la array, que almacena una colección secuencial de tamaño fijo de elementos del mismo tipo. Una matriz se usa para almacenar una colección de datos, pero a menudo es más útil pensar en una matriz como una colección de variables del mismo tipo.
En lugar de declarar variables individuales, como número0, número1, ... y número99, declaras una variable de matriz como números y usas números [0], números [1] y ..., números [99] para representar variables individuales. Este tutorial presenta cómo declarar variables de matriz, crear matrices y procesar matrices utilizando variables indexadas. El índice del primer elemento de una matriz es el número cero y el índice del último elemento es el número total de elementos menos uno.
Declaración de variables de matriz
Para usar una matriz en un programa, debe declarar una variable para hacer referencia a la matriz y debe especificar el tipo de matriz a la que la variable puede hacer referencia.
La siguiente es la sintaxis para declarar una variable de matriz.
Sintaxis
var z:Array[String] = new Array[String](3)
or
var z = new Array[String](3)
Aquí, z se declara como una matriz de cadenas que pueden contener hasta tres elementos. Los valores se pueden asignar a elementos individuales u obtener acceso a elementos individuales, se puede hacer usando comandos como los siguientes:
Mando
z(0) = "Zara"; z(1) = "Nuha"; z(4/2) = "Ayan"
Aquí, el último ejemplo muestra que, en general, el índice puede ser cualquier expresión que arroje un número entero. Hay una forma más de definir una matriz:
var z = Array("Zara", "Nuha", "Ayan")
La siguiente imagen representa una matriz myList. Aquí,myList contiene diez valores dobles y los índices van de 0 a 9.
Procesamiento de matrices
Cuando procesamos elementos de matriz, a menudo usamos estructuras de control de bucle porque todos los elementos de una matriz son del mismo tipo y se conoce el tamaño de la matriz.
A continuación se muestra un programa de ejemplo que muestra cómo crear, inicializar y procesar matrices:
Ejemplo
object Demo {
def main(args: Array[String]) {
var myList = Array(1.9, 2.9, 3.4, 3.5)
// Print all the array elements
for ( x <- myList ) {
println( x )
}
// Summing all elements
var total = 0.0;
for ( i <- 0 to (myList.length - 1)) {
total += myList(i);
}
println("Total is " + total);
// Finding the largest element
var max = myList(0);
for ( i <- 1 to (myList.length - 1) ) {
if (myList(i) > max) max = myList(i);
}
println("Max is " + max);
}
}
Guarde el programa anterior en Demo.scala. Los siguientes comandos se utilizan para compilar y ejecutar este programa.
Mando
\>scalac Demo.scala
\>scala Demo
Salida
1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5
Scala no admite directamente varias operaciones de matrices y proporciona varios métodos para procesar matrices en cualquier dimensión. Si desea utilizar los diferentes métodos, es necesario importarArray._ paquete.