Latest web development tutorials

tableau Scala

Tableau langage Scala fourni est utilisé pour stocker un des éléments de taille fixe du même type, un pour chaque porte tableau Editors langue, sont des structures de données importantes.

Déclaration d'une variable de tableau est pas déclaré number0, number1, ..., number99 une variable distincte, mais une déclaration comme ce nombre variable, puis utilisez les chiffres [0], numéros [1], ..., nombres [ 99] pour représenter une variable distincte. Un élément de tableau spécifié par l'index est accessible.

Le premier élément de l'index de tableau 0, l'indice du dernier élément est le nombre d'éléments moins un.


Déclarer un tableau

Ce qui suit est la syntaxe Scala déclaration de tableau:

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

或

var z = new Array[String](3)

La syntaxe ci-dessus, z déclarer un type de tableau de chaînes, la longueur du tableau est de 3, peut stocker trois éléments. Nous pouvons définir la valeur de chaque élément, et accéder à chaque élément par index, comme suit:

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

Indice du dernier élément dans l'expression en utilisant4/2 comme indice, semblable à z (2) = «Google».

On peut aussi définir un tableau en utilisant les méthodes suivantes:

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

La figure suivante montre un tableau de longueur myList 10, la valeur d'index de 0-9:


Utilisation de tableaux

Type et taille de l'élément de tableau du tableau est déterminée, de sorte que lors du traitement des éléments du tableau, nous utilisons souvent de base pour la boucle.

L'exemple suivant illustre la création d'un tableau, le processus d'initialisation:

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

Mise en œuvre du code ci-dessus, la sortie est:

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

Les tableaux multidimensionnels

A des valeurs de tableau multidimensionnel dans le tableau peuvent être un autre tableau, une autre valeur de tableau peut aussi être un tableau. Matrix et notre forme commune est un tableau à deux dimensions.

Ce qui précède est un exemple d'un tableau à deux dimensions définies:

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

Des exemples de la matrice contient trois éléments d'un tableau, chaque élément du tableau à son tour contient trois valeurs.

Ensuite, nous regardons un exemple complet d'un tableau à deux dimensions de la transformation:

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

Exécution instance »

Mise en œuvre du code ci-dessus, la sortie est:

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

Fusionner tableau

Les exemples suivants, nous utilisons concat () pour fusionner les deux tableaux, méthode concat () accepte plusieurs paramètres de tableau:

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

Mise en œuvre du code ci-dessus, la sortie est:

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

Créer un intervalle de tableau

Les exemples suivants, nous utilisons la méthode range () pour produire le tableau dans une large gamme. range () méthode dernier paramètre dans les étapes de 1 par défaut:

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

Mise en œuvre du code ci-dessus, la sortie est:

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

méthode de tableau Scala

Le tableau suivant est une méthode importante pour la langue de traitement réseau Scala, avant de l' utiliser , nous devons utiliserArray._ d'importation package introduit.

Non. Méthode et description
1

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

Créer un tableau de l'objet spécifié T, la valeur de T peut être Unité, Double, Float, Long, Int, Char, Court, Byte, Boolean.

2

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

Fusionner tableau

3

def copier (src: AnyRef, srcPos : Int, dest: AnyRef, destPos: Int, longueur: Int): Unité

Copie un tableau à un autre tableau. Equivalent à System.arraycopy de Java (src, srcPos, dest, destPos, longueur).

4

def vide [T]: Array [ T]

Renvoie un tableau de longueur 0 est

5

itérer def [T] (début: T, len: Int) (f: (T) => T): Array [T]

Renvoie la longueur du tableau, chaque élément du tableau est la valeur de retour de la fonction spécifiée.

Des exemples de la matrice valeur initiale au- dessus de 0 et une longueur de 3 à calculer la fonctiona => a + 1:

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

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

Retourne un tableau, le premier paramètre est spécifié, et chaque élément du second argument pour remplir la longueur.

7

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

Renvoie deux tableaux, le premier paramètre est spécifié, et chaque élément du second argument pour remplir la longueur.

8

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

Créer un tableau de longueur spécifiée

9

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

Créer un tableau à deux dimensions

10

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

Créer un tableau à trois dimensions

11

Plage de def (début: Int, fin : Int, étape: Int): Array [Int]

Créer un tableau dans la plage spécifiée, par incréments de entre chaque élément

12

Plage de def (début: Int, fin : Int): Array [Int]

Créer un tableau dans l'intervalle spécifié

13

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

Renvoie la longueur du tableau, chaque élément du tableau est la valeur de retour de la fonction spécifiée, à partir de zéro par défaut.

Les exemples ci-dessus renvoient trois éléments:

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

def tabuler [T] (n1: Int, n2: Int) (f: (Int, Int) => T): Array [Array [T]]

Renvoie un tableau à deux dimensions de la longueur spécifiée, chaque élément du tableau est la valeur de retour de la fonction spécifiée, à partir de zéro par défaut.