數(shù)組、列表、元組、集合和映射
1、使用類型參數(shù)化數(shù)組【Array】

這張圖可以解釋Array的特性:
val array1 = Array("one","two","three") 等價于
{ val array1= new Array[String](3) // Scala使用new實例化對象或類實例
array1(0)="one"
array1(1)="two"
array1(2)="three"
}
這幾行代碼演示了Scala如何看待val的意義的重要概念。當你用val定義一個變量,那么這個變量就不能重新賦值,但它指向的對象卻仍可以改變。
在該例中,array1不能被重新賦值成不同的數(shù)組,array1將永遠指向那個它被初始化時候指向的同一個Array[String]實例。
但是我們能一遍遍地修改Array[String]中的元素,因此數(shù)字本身是mutable的。
2、使用列表【List】
List與Array相似,Array是所有對象都共享想用類型的可變序列,而List是共享相同類型的不可變序列。

如上所示,val類型的list 不可變,list中的元素不可變。
list 不提供append操作。
3、使用元組【tuple】

與列表一樣,元組也是不可變的容器對象,但與列表不同,元組可以包含不同類型的元素。
元組自動推斷數(shù)據(jù)類型,下標從_1計起。
為什么你不能像訪問List里的元素那樣訪問元組的,就像pair(0)?
因為List的apply方法始終返回同樣的類型,但是元組里的或許類型不同: _1可以有一個結果類型,_2是另外一個。
Tuple目前最長支持22位長度。
4、 Set and Map
集合映射方面,Scala同樣提供了可變和不可變的替代品。


Scala的Set類繼承關系:

Map同樣分可變與不可變。缺省為不可變映射scala.collection.immutable.Map,代碼如下:

Scala的Map類繼承關系
