[오리지널] Scala 학습: 배열 의 기본 조작, 배열 진급 조작, 다 차원 배열
1. Scala 에 서 는 같은 유형의 요 소 를 저장 하 는 고정 크기 의 연속 집합 을 제공 합 니 다.배열 은 데 이 터 를 저장 하 는 집합 에 사용 되 지만 배열 이 같은 유형의 변수 로 서 의 집합 이 라 고 생각 하 는 데 더욱 유용 하 다.
2 성명 배열 변수:
사용 할 프로그램의 배열 은 하나의 변 수 를 설명 하여 배열 을 참조 해 야 합 니 다. 배열 변 수 를 참조 할 수 있 는 형식 을 지정 해 야 합 니 다.다음은 문법 설명 배열 변수 입 니 다.
var z:Array[String] = new Array[String](3) or var z = new Array[String](3) or var z = Array("Zara", "Nuha", "Ayan")
여기 서 z 는 문자열 배열 로 알려 져 있 으 며 최대 세 개의 요 소 를 수용 할 수 있 습 니 다.독립 된 요소 에 값 을 할당 하거나 하나의 요소 에 접근 할 수 있 습 니 다. 이것 은 다음 명령 과 유사 한 명령 을 사용 할 수 있 습 니 다.
z(0) = "Zara"; z(1) = "Nuha"; z(4/2) = "Ayan"
3.Scala :以下是重要的方法,可以同时使用数组。如上所示,则必须使用任何提及的方法之前,要导入Array._包。有关可用方法的完整列表,请Scala中的官方文件。
SN | 方法及描述 |
---|---|
1 | def apply( x: T, xs: T* ): Array[T] 创建T对象,其中T可以是Unit, Double, Float, Long, Int, Char, Short, Byte, Boolean数组。 |
2 | def concat[T]( xss: Array[T]* ): Array[T] 连接所有阵列成一个数组。 |
3 | def copy( src: AnyRef, srcPos: Int, dest: AnyRef, destPos: Int, length: Int ): Unit 复制一个数组到另一个。相当于Java的System.arraycopy(src, srcPos, dest, destPos, length). |
4 | def empty[T]: Array[T] 返回长度为0的数组 |
5 | def iterate[T]( start: T, len: Int )( f: (T) => T ): Array[T] 返回一个包含一个函数的重复应用到初始值的数组。 |
6 | def fill[T]( n: Int )(elem: => T): Array[T] 返回包含某些元素的计算的结果的次数的数组。 |
7 | def fill[T]( n1: Int, n2: Int )( elem: => T ): Array[Array[T]] 返回一个二维数组,其中包含某些元素的计算的结果的次数。 |
8 | def iterate[T]( start: T, len: Int)( f: (T) => T ): Array[T] 返回一个包含一个函数的重复应用到初始值的数组。 |
9 | def ofDim[T]( n1: Int ): Array[T] 创建数组给出的尺寸。 |
10 | def ofDim[T]( n1: Int, n2: Int ): Array[Array[T]] 创建了一个2维数组 |
11 | def ofDim[T]( n1: Int, n2: Int, n3: Int ): Array[Array[Array[T]]] 创建3维数组 |
12 | def range( start: Int, end: Int, step: Int ): Array[Int] 返回包含一些整数间隔等间隔值的数组。 |
13 | def range( start: Int, end: Int ): Array[Int] 返回包含的范围内增加整数序列的数组。 |
14 | def tabulate[T]( n: Int )(f: (Int)=> T): Array[T] 返回包含一个给定的函数的值超过从0开始的范围内的整数值的数组。 |
15 | def tabulate[T]( n1: Int, n2: Int )( f: (Int, Int ) => T): Array[Array[T]] 返回一个包含给定函数的值超过整数值从0开始范围的二维数组。 |
1 package first.scala
2
3 import scala.collection.mutable.ArrayBuffer
4 import sun.org.mozilla.javascript.internal.ast.Yield
5
6 object ScalaInAction {
7 //scala.Array
8
9 /******************************************************************************************************************************/
10 //
11 // : ,
12 val nums = new Array[Int](10) //> nums : Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
13 val a = new Array[String](10) //> a : Array[String] = Array(null, null, null, null, null, null, null, null, n
14 //| ull, null)
15 // : ,
16 val s = Array("hello" , "world") //> s : Array[String] = Array(hello, world)
17
18 s(0) = "goodbye"
19
20
21 //
22 val b = ArrayBuffer[Int]() //> b : scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()
23
24 b += 1 //> res0: first.scala.ScalaInAction.b.type = ArrayBuffer(1)
25 b += (1,2,3,4) //> res1: first.scala.ScalaInAction.b.type = ArrayBuffer(1, 1, 2, 3, 4)
26 b ++= Array(12,15,63) //> res2: first.scala.ScalaInAction.b.type = ArrayBuffer(1, 1, 2, 3, 4, 12, 15,
27 //| 63)
28 // 2
29 b.trimEnd(2)
30 b //> res3: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2, 3, 4,
31 //| 12)
32 //
33 b.insert(2, 15)
34 b //> res4: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 15, 2, 3
35 //| , 4, 12)
36
37 // 2
38 b.remove(2) //> res5: Int = 15
39
40 // ,
41 b.toArray //> res6: Array[Int] = Array(1, 1, 2, 3, 4, 12)
42 b //> res7: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 1, 2, 3, 4,
43 //| 12)
44
45 /*******************************************************************************************************/
46 //
47
48 for(i until a.length)
49 println(i + " : " + a(i)) //> 0 : null
50 //| 1 : null
51 //| 2 : null
52 //| 3 : null
53 //| 4 : null
54 //| 5 : null
55 //| 6 : null
56 //| 7 : null
57 //| 8 : null
58 //| 9 : null
59
60
61 val c = Array(2,5,8,9,18) //> c : Array[Int] = Array(2, 5, 8, 9, 18)
62 val result = for(elem elem
63 //> result : Array[Int] = Array(4, 10, 16, 18, 36)
64
65 // c 2
66 for(elem if elem % 2 == 0 ) yield 2 * elem
67 //> res8: Array[Int] = Array(4, 16, 36)
68
69 //spark , 。 map
70 c.filter( _ % 2 == 0).map(2 * _) //> res9: Array[Int] = Array(4, 16, 36)
71
72 //
73 Array(1,2,3).sum //> res10: Int = 6
74
75
76 //
77 ArrayBuffer("Mary", "had", "a", "little", "lamb").max
78 //> res11: String = little
79
80 // ,
81 val d = ArrayBuffer(1,7,2,9) //> d : scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 7, 2, 9)
82 val bSorted = d.sorted //> bSorted : scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 7,
83 //| 9)
84
85 //
86 val e = Array(1,7,2,9) //> e : Array[Int] = Array(1, 7, 2, 9)
87 scala.util.Sorting.quickSort(e)
88
89 //
90 e.mkString(" and ") //> res12: String = 1 and 2 and 7 and 9
91 //
92 a.mkString("") //> res13: String =
93
94
95 /**************************************************************************************************************************/
96
97
98 // : Array.ofDim[Double](3,4)
99 val matrix = Array.ofDim[Double](3,4) //> matrix : Array[Array[Double]] = Array(Array(0.0, 0.0, 0.0, 0.0), Array(0.0
100 //| , 0.0, 0.0, 0.0), Array(0.0, 0.0, 0.0, 0.0))
101 matrix(2)(1) = 42
102
103 matrix //> res14: Array[Array[Double]] = Array(Array(0.0, 0.0, 0.0, 0.0), Array(0.0, 0
104 //| .0, 0.0, 0.0), Array(0.0, 42.0, 0.0, 0.0))
105 val triangle = new Array[Array[Int]](10)
106 //> triangle : Array[Array[Int]] = Array(null, null, null, null, null, null, n
107 //| ull, null, null, null)
108
109
110 for(i until triangle.length)
111 triangle(i) = new Array[Int](i + 1)
112 triangle //> res15: Array[Array[Int]] = Array(Array(0), Array(0, 0), Array(0, 0, 0), Arr
113 //| ay(0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0, 0), Array(0, 0,
114 //| 0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0, 0, 0, 0
115 //| , 0), Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0))
116
117
118
119
120 }
다음으로 전송:https://www.cnblogs.com/jasonHome/p/5734054.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.