Latest web development tutorials

matriz Scala

Array lenguaje Scala proporcionada se utiliza para almacenar una serie de elementos de tamaño fijo del mismo tipo, uno para cada puerta lenguaje Editores de matriz, son estructuras de datos importantes.

Declaración de una variable de matriz no se declara Number0, número1, ..., number99 una variable independiente, sino una declaración similares a este número variable, a continuación, utilizar los números [0], números [1], ..., [números 99] para representar una variable independiente. Se accede a un elemento de matriz especificado por el índice.

El primer elemento de la índice de matriz 0, el índice del último elemento es el número de elementos menos uno.


Declarar una matriz

La siguiente es la sintaxis Scala declaración de matriz:

var z:Array[String] = new Array[String](3)

或

var z = new Array[String](3)

La sintaxis anterior, z declarar un tipo de cadena de la matriz, la longitud de la matriz 3, puede almacenar tres elementos. Podemos establecer el valor de cada elemento, y acceder a cada elemento por el índice, de la siguiente manera:

z(0) = "w3big"; z(1) = "Baidu"; z(4/2) = "Google"

Índice del último elemento de la expresión usando4/2 como un índice, de forma similar a la Z (2) = "Google".

También podemos definir una matriz mediante los métodos siguientes:

var z = Array("w3big", "Baidu", "Google")

La siguiente figura muestra una matriz de longitud miLista 10, el valor del índice de 0-9:


Trabajo con conjuntos

Tipo y el tamaño del elemento de matriz de la matriz se determina, por lo que cuando el procesamiento de elementos de la matriz, que a menudo utilizan la base para el bucle.

El siguiente ejemplo muestra la creación de un, proceso de inicialización de la matriz:

object Test {
   def main(args: Array[String]) {
      var myList = Array(1.9, 2.9, 3.4, 3.5)
      
      // 输出所有数组元素
      for ( x <- myList ) {
         println( x )
      }

      // 计算数组所有元素的总会
      var total = 0.0;
      for ( i <- 0 to (myList.length - 1)) {
         total += myList(i);
      }
      println("总和为 " + total);

      // 查找数组中的最大元素
      var max = myList(0);
      for ( i <- 1 to (myList.length - 1) ) {
         if (myList(i) > max) max = myList(i);
      }
      println("最大值为 " + max);
    
   }
}

Aplicación del código anterior, la salida es:

$ scalac Test.scala
$ scala Test
1.9
2.9
3.4
3.5
总和为 11.7
最大值为 3.5

Las matrices multidimensionales

A valores de la matriz multidimensional de la matriz puede ser otra matriz, otro valor de la matriz también puede ser una matriz. Matrix y nuestra forma común es una matriz de dos dimensiones.

Lo anterior es un ejemplo de una matriz bidimensional definido:

var myMatrix = ofDim[Int](3,3)

Los ejemplos de la matriz contiene tres elementos de una matriz, cada elemento de la matriz a su vez contiene tres valores.

A continuación, nos fijamos en un ejemplo completo de una matriz bidimensional de procesamiento:

import Array._

object Test {
   def main(args: Array[String]) {
      var myMatrix = ofDim[Int](3,3)
      
      // 创建矩阵
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            myMatrix(i)(j) = j;
         }
      }
      
      // 打印二维阵列
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            print(" " + myMatrix(i)(j));
         }
         println();
      }
    
   }
}

Instancia en ejecución »

Aplicación del código anterior, la salida es:

$ scalac Test.scala
$ scala Test
0 1 2
0 1 2
0 1 2

combinar matriz

Los siguientes ejemplos, que utilizan el método para combinar dos matrices, método concat () acepta varios parámetros de matriz concat ():

import Array._

object Test {
   def main(args: Array[String]) {
      var myList1 = Array(1.9, 2.9, 3.4, 3.5)
      var myList2 = Array(8.9, 7.9, 0.4, 1.5)

      var myList3 =  concat( myList1, myList2)
      
      // 输出所有数组元素
      for ( x <- myList3 ) {
         println( x )
      }
   }
}

Aplicación del código anterior, la salida es:

$ scalac Test.scala
$ scala Test
1.9
2.9
3.4
3.5
8.9
7.9
0.4
1.5

Crear un intervalo matriz

Los siguientes ejemplos, que utilizan el método de rango () para generar la matriz dentro de una amplia gama. rango () método último parámetro en pasos de 1 por defecto:

import Array._

object Test {
   def main(args: Array[String]) {
      var myList1 = range(10, 20, 2)
      var myList2 = range(10,20)

      // 输出所有数组元素
      for ( x <- myList1 ) {
         print( " " + x )
      }
      println()
      for ( x <- myList2 ) {
         print( " " + x )
      }
   }
}

Aplicación del código anterior, la salida es:

$ scalac Test.scala
$ scala Test
10 12 14 16 18
10 11 12 13 14 15 16 17 18 19

método de arreglos de Scala

La tabla siguiente es un método importante para el procesamiento del lenguaje matriz Scala, antes de usarlo tenemos que utilizar el paquete introducidoArray._ importación.

No. Método y Descripción
1

aplicar def (x: T, xs : T *): Array [T]

Crear una matriz del objeto T se especifica, el valor de T puede ser unitario, Double, Float, Largo, Int, char, short, Byte, Boolean.

2

def concat [T] (XSS: Array [T] *): Array [T]

combinar matriz

3

def copiar (src: AnyRef, srcPos : INT, dest: AnyRef, destPos: Int, longitud: int): Unidad

Copias de una matriz a otra matriz. Equivalente a System.arraycopy de Java (src, srcPos, dest, destPos, longitud).

4

def vacío [T]: Array [ T]

Devuelve una matriz de longitud es 0

5

def iterar [T] (inicio: T, len: Int) (f: (T) => T): Array [T]

Devuelve la longitud de la matriz, cada elemento de la matriz es el valor de retorno de la función especificada.

Los ejemplos del valor por encima de matriz inicial de 0 y una longitud de 3 a calcular la función dea => a + 1:

scala> Array.iterate(0,3)(a=>a+1)
res1: Array[Int] = Array(0, 1, 2)
6

llenar def [T] (n: Int) (elem: => T): Array [T]

Devuelve una matriz, se especifica el primer parámetro, y cada elemento del segundo argumento para llenar longitud.

7

llenar def [T] (n1: Int, n2: Int) (elem: => T): Array [Matriz [T]]

Devuelve dos matrices, se especifica el primer parámetro, y cada elemento del segundo argumento para llenar longitud.

8

def ofDim [T] (n1: Int): Array [T]

Crear una matriz de longitud especificada

9

def ofDim [T] (n1: Int, n2: Int): Array [Matriz [T]]

Crear una matriz bidimensional

10

def ofDim [T] (n1: Int, n2: Int, n3: Int): Array [Matriz [Matriz [T]]]

Crear una matriz tridimensional

11

rango def (inicio: Int, final : Int, paso: int): Array [Int]

Crear una matriz dentro del rango especificado, incrementos de los pasos entre cada elemento

12

rango def (inicio: Int, final : Int): Array [Int]

Crear una matriz dentro del rango especificado

13

def tabular [T] (n: Int) (f: (int) => T): Array [T]

Devuelve la longitud de la matriz, cada elemento de la matriz es el valor de retorno de la función especificada, a partir de cero por defecto.

Los ejemplos anteriores devuelven tres elementos:

scala> Array.tabulate(3)(a => a + 5)
res0: Array[Int] = Array(5, 6, 7)
14

def tabular [T] (n1: Int, n2: Int) (f: (int, int) => T): Array [Matriz [T]]

Devuelve una matriz de dos dimensiones de la longitud especificada, cada elemento de la matriz es el valor de retorno de la función especificada, a partir de cero por defecto.