스칼라 배열
제공된 배열 스칼라 언어 중요한 데이터 구조이다 동일한 유형 각각 게이트 어레이 편집자 언어에 대해 하나의 고정 된 크기의 요소를 저장하는데 사용된다.
배열 변수의 선언 number0, 숫자 1, ..., 별도의 변수 만이 변수 번호와 같은 선언 number99은 다음 번호 [0], 숫자 [1], ..., 번호를 [사용 선언되지 않았습니다 99] 별도의 변수를 나타냅니다. 인덱스로 지정된 배열의 요소에 액세스 할 수 있습니다.
배열 인덱스 0의 첫 번째 요소는, 마지막 요소의 인덱스 요소를 뺀 수입니다.
배열을 선언
다음은 구문 스칼라 배열 선언입니다 :
var z:Array[String] = new Array[String](3) 或 var z = new Array[String](3)
배열의 길이가 3, 세 가지 요소를 저장할 수 있습니다 위의 구문, Z는 배열의 문자열 유형을 선언합니다. 우리는 다음과 같은 각각의 요소에 대한 값을 설정하고, 인덱스의 각 요소에 액세스 할 수있다 :
z(0) = "w3big"; z(1) = "Baidu"; z(4/2) = "Google"
Z (2) = "구글"유사한 인덱스로 4/2을사용하여 표현의 마지막 요소의 인덱스 .
우리는 또한 다음과 같은 방법을 사용하여 배열을 정의 할 수 있습니다 :
var z = Array("w3big", "Baidu", "Google")
다음 그림은 길이으로 myList (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)
배열의 예는 배열의 세 가지 요소를 포함, 차례로 각 배열 요소는 세 개의 값이 포함되어 있습니다.
다음으로, 처리의 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
배열을 병합
다음의 예는, 우리는 CONCAT () 두 개의 배열을 병합하는 방법, 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 ) } } }
위의 코드의 구현, 출력은 :
$ 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
스칼라 배열 방법
우리가수입 Array._ 도입 패키지를 사용할 필요를 사용하기 전에 다음 표는 처리 언어 스칼라 배열을위한 중요한 방법이다.
아니오. | 방법 및 설명 |
---|---|
(1) | 데프 적용 (X : T, XS : T의 *) : 배열 [T] 지정된 객체 T의 배열을 작성, T의 값은 단위, 더블, 플로트, 긴, 지능, 숯불, 짧은, 바이트, 부울 수있다. |
이 | 데프 CONCAT [T] (XSS : 배열 [T] *) : 배열 [T] 배열을 병합 |
3 | (: AnyRef, srcPos로부터 SRC 데프 복사 : 지능, 대상 : AnyRef, destPos가 : 지능, 길이 : int)를 : 단위 복사 다른 배열에 배열. 자바의 System.arraycopy에 (SRC,의 srcPos, 이명 령, destPos가, 길이)와 동일합니다. |
4 | 데프 빈 [T] : 배열 [ T] 길이 0의 배열이 돌려줍니다 |
(5) | 데프 반복 [T] (시작 : T, 렌 : int)를 (F : (T) => T) : 배열 [T] 어레이의 길이를 돌려 각 배열 요소가 지정된 함수의 리턴 값이다. 0의 상기 어레이의 초기 값 (3)의 길이로서는=> +1 함수 A를산출한다: scala> Array.iterate(0,3)(a=>a+1) res1: Array[Int] = Array(0, 1, 2) |
6 | 데프 작성 [T] (n은 INT) (ELEM => T) : 배열 [T] 배열, 첫 번째 매개 변수가 지정되고, 길이를 채우기 위해 두 번째 인수의 각 요소를 돌려줍니다. |
(7) | 데프 작성 [T] (N1 : 지능, N2 : INT) (ELEM => T) : 배열 [배열 [T] 첫 번째 매개 변수가 지정되어, 두 개의 배열을 반환하고, 두 번째 인수의 각 요소의 길이를 채우기 위해. |
8 | 데프 ofDim [T] (N1 : INT) : 배열 [T] 지정된 길이의 배열을 생성 |
9 | 데프 ofDim [T] (N1 : 지능, N2 : INT) : 배열 [배열 [T] 2 차원 배열을 만들어 |
(10) | 데프 ofDim [T] (N1 : 지능, N2 : 지능, N3 : INT) : 배열 [배열 [배열 [T]]] 입체 배열을 만들기 |
(11) | 데프 범위 (시작 : 지능, 끝 : 지능 단계 : INT) : 배열 [지능] 각 요소 사이의 단계 증가를 지정된 범위 내에서 배열 만들기 |
(12) | 데프 범위 (시작 : 지능, 끝 : INT) : 배열 [지능] 지정된 범위 내에서 배열 만들기 |
(13) | 데프 집계 [T] (n은 INT) (F : (INT) => T) : 배열 [T] 어레이의 길이, 각 배열 요소가 0에서 디폴트로 지정된 함수의 리턴 값으로 반환한다. 위의 예는 세 가지 요소를 반환 : scala> Array.tabulate(3)(a => a + 5) res0: Array[Int] = Array(5, 6, 7) |
(14) | (: N1 데프 [T] 표로 지능, N2 : int)를 (F : (INT, INT) => T) : 배열 [배열 [T] 지정된 길이의 2 차원 배열은, 각각의 어레이 소자는 0에서 디폴트로 지정된 함수의 리턴 값으로 반환한다. |