Latest web development tutorials

matriz de Scala

Matriz linguagem Scala fornecida é utilizada para armazenar um elementos de tamanho fixo do mesmo tipo, um para cada porta de linguagem Editores de matriz, são estruturas de dados importantes.

Declaração de uma variável de matriz não está declarado Number0, number1, ..., number99 uma variável separada, mas uma declaração como este número variável, em seguida, usar os números [0], números de [1], ..., números [ 99] para representar uma variável separada. Um elemento de matriz especificada pelo índice é acessado.

O primeiro elemento do índice de matriz 0, o índice do último elemento é o número de elementos menos um.


Declarar uma matriz

O seguinte é a sintaxe Scala declaração de matriz:

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

或

var z = new Array[String](3)

A sintaxe acima, z declarar um tipo de cadeia de matriz, o comprimento da matriz é 3, pode armazenar três elementos. Podemos definir o valor para cada elemento, e acessar cada elemento pelo índice, como segue:

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

Índice do último elemento na expressão usando4/2 como um índice, semelhante a Z (2) = "Google".

Nós também podemos definir uma matriz usando os seguintes métodos:

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

A figura a seguir mostra uma matriz de comprimento myList 10, o valor do índice de 0-9:


Trabalho com matrizes

Tipo e tamanho do elemento da matriz da matriz é determinado, de modo que ao processar elementos da matriz, muitas vezes usamos o básico para loop.

O exemplo que se segue demonstra a criação de uma matriz, o processo de inicialização:

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);
    
   }
}

Implementação do código acima, a saída é:

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

arrays multidimensionais

A valores de matriz multidimensional na matriz pode ser uma outra matriz, um outro valor de matriz também pode ser uma matriz. Matrix e nossa forma comum é uma matriz bidimensional.

A descrição acima é um exemplo de uma matriz bidimensional definida:

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

Exemplos de a matriz contém três elementos de uma matriz, cada elemento da matriz, por sua vez contém três valores.

Em seguida, olhamos para um exemplo completo de uma matriz bidimensional de processamento:

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();
      }
    
   }
}

Correndo instância »

Implementação do código acima, a saída é:

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

mesclar matriz

Os exemplos a seguir, usamos o método de fundir duas matrizes, concat () método aceita vários 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 )
      }
   }
}

Implementação do código acima, a saída é:

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

Criar um intervalo de matriz

Os exemplos seguintes, que utilizam o método do intervalo () para produzir o conjunto dentro de uma ampla gama. range () método último parâmetro em passos de 1 por padrão:

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 )
      }
   }
}

Implementação do código acima, a saída é:

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

método de array Scala

A tabela a seguir é um método importante para a linguagem do processamento de matriz Scala, antes de usá-lo, precisamos usarde importação Array._ pacote introduzido.

Não. Método e Descrição
1

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

Criar uma matriz do objeto T especificado, o valor de T pode ser Unit, Double, Float, Long, Int, Char, Short, Byte, Boolean.

2

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

mesclar matriz

3

copiar def (SRC: AnyRef, srcPos : INT, Dest: AnyRef, destPos: INT, comprimento: int): Unidade

Copia uma matriz para outra matriz. Equivalente a System.arraycopy de Java (src, srcPos, dest, destPos, comprimento).

4

def vazia [T]: Array [ T]

Retorna uma matriz de comprimento 0 é

5

def iteração [T] (início: T, len: Int) (f: (T) => T): Array [T]

Retorna o comprimento da matriz, cada elemento da matriz é o valor de retorno da função especificada.

Exemplos da matriz valor inicial acima de 0 e um comprimento de 3 para calcular a função deum => a + 1:

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

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

Devolve uma matriz, o primeiro parâmetro é especificado, e cada elemento do segundo argumento para preencher comprimento.

7

def preencher [T] (n1: Int, n2: Int) (elem: => T): Array [matriz [T]]

Retorna duas matrizes, o primeiro parâmetro é especificado, e cada elemento do segundo argumento para preencher comprimento.

8

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

Criar uma matriz de comprimento especificado

9

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

Criar uma matriz bidimensional

10

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

Criar uma matriz tridimensional

11

gama def (start: Int, final : Int, passo: Int): Array [Int]

Criar uma matriz dentro da faixa especificada, incrementos entre cada elemento

12

gama def (start: Int, final : Int): Array [Int]

Criar uma matriz dentro do intervalo especificado

13

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

Retorna o comprimento da matriz, cada elemento da matriz é o valor de retorno da função especificada, de zero por padrão.

Os exemplos acima retornam três 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]]

Retorna uma matriz bidimensional com o comprimento especificado, cada elemento da matriz é o valor de retorno da função especificada, de zero por padrão.