Latest web development tutorials

Scalaの配列

提供される配列Scalaの言語が同じタイプ、各ゲートアレイ編集言語ごとに1つの固定サイズの要素を格納するために使用され、重要なデータ構造です。

配列変数の宣言number0、数値1、...、別々の変数が、この変数番号のような宣言number99が、その後の数字[0]、番号[1]、...、番号を[使用宣言されていません。 99]別々の変数を表します。 インデックスで指定された配列の要素にアクセスします。

配列インデックス0、最後の要素のインデックスの最初の要素は、要素の数から1を差し引いた値です。


配列を宣言する

以下は、構文Scalaの配列の宣言です:

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

或

var z = new Array[String](3)

三つの要素を格納することができます上記の構文は、zの配列の文字列型を宣言し、配列の長さは、3です。 私たちは、それぞれの要素の値を設定し、次のように、インデックスによって各要素にアクセスすることができます。

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

Z(2)= "グーグル"に類似指標として4/2を使用して式の最後の要素のインデックス。

また、以下の方法を使用して配列を定義することができます。

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

次の図は、長さマイリスト10、0-9のインデックス値の配列を示しています。


配列の操作

配列の配列要素の種類と大きさが決定されるので、配列の要素を処理するとき、私たちはしばしばループのための基本を使用しています。

次の例では、配列、初期化プロセスの作成を示しています。

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

上記のコードの実装、出力は次のようになります。

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

多次元配列

配列内の多次元配列値は、別の配列にすることができ、別の配列値も配列にすることができます。 マトリックスと私たちの一般的な形式は、2次元配列です。

上記は、定義された2次元配列の例です:

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

配列の例としては、配列の3つの要素が含まれ、順番に各配列要素は3つの値が含まれています。

次に、我々は処理の2次元アレイの完全な例を見てみましょう。

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

実行中のインスタンス»

上記のコードの実装、出力は次のようになります。

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

配列をマージ

以下の例では、我々は二つの配列をマージする連結()メソッドを使用し、連結()メソッドは、複数の配列パラメータを受け付けます。

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

上記のコードの実装、出力は次のようになります。

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

アレイ間隔を作成します

以下の実施例は、我々は、広い範囲内で配列を生成する範囲()メソッドを使用します。 デフォルトでは1のステップで範囲()メソッドの最後のパラメータ:

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

上記のコードの実装、出力は次のようになります。

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

Scalaの配列方法

我々は輸入Array._導入パッケージを使用する必要があり、それを使用する前に、次の表では、処理言語Scalaの配列のための重要な方法です。

いいえ。 メソッドと説明
1

デフ適用されます(X:T、XS :Tの*):配列[T]

指定されたオブジェクトTの配列を作成し、Tの値は、ブール・ユニット、ダブル、フロート、ロング、INT、シャア、ショート、バイトであってもよいです。

2

デフCONCAT [T](XSS:配列[T] *):配列[T]

配列をマージ

3

デフコピー(SRC:AnyRef、srcPos :INT、DEST:AnyRef、destPos:INT、長さ:INT):ユニットを

別の配列にコピー配列。 JavaのSystem.arraycopyの(SRC、srcPos、DEST、destPos、長さ)に相当します。

4

defの空[T]:配列[ T]

長さが0の配列である返します

5

defを反復[T](開始: T、LEN:int)を(F:(T)=> T):配列[T]

配列の各要素は、指定された関数の戻り値で、配列の長さを返します。

0の上の配列の初期値と関数A => A + 1を計算するための3の長さの例

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

defを埋める[T](nは: INT)(elemは:=> T):配列[T]

配列を返し、最初のパラメータが指定され、第二引数の各要素は、長さを埋めるために。

7

defを埋める[T](N1: INT、N2:INT)(elemは:=> T):配列[配列[T]]

二つの配列を返し、最初のパラメータが指定され、第二引数の各要素は、長さを埋めるために。

8

デフofDim [T](N1: INT):配列[T]

指定した長さの配列を作成します。

9

デフofDim [T](N1: INT、N2:INT):配列[配列[T]]

2次元配列を作成します。

10

デフofDim [T](N1: INT、N2:INT、N3:INT):配列[配列[配列[T]]]

3次元配列を作成します。

11

デフ範囲(開始:INT、エンド :INT、ステップ:INT):配列を[INT]

、各要素間の段差増分を指定した範囲内の配列を作成します。

12

デフ範囲(開始:INT、エンド :INT):配列を[INT]

指定された範囲内の配列を作成します。

13

defの集計[T](nは: INT)(F:(INT)=> T):配列[T]

デフォルトでは、ゼロから、各配列要素が指定した関数の戻り値で、配列の長さを返します。

上記の例は、3つの要素を返します。

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

defの集計[T](N1: INT、N2:INT)(F:(整数、整数)=> T):配列[配列[T]]

指定された長さの2次元配列を返し、各配列要素は、デフォルトでは、ゼロから、指定された関数の戻り値です。