Scala進階筆記---數(shù)組、列表、元組、集合和映射

數(shù)組、列表、元組、集合和映射

1、使用類型參數(shù)化數(shù)組【Array】


pic1

這張圖可以解釋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是共享相同類型的不可變序列。


pic2

如上所示,val類型的list 不可變,list中的元素不可變。
list 不提供append操作。

3、使用元組【tuple】


pic3

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

4、 Set and Map
集合映射方面,Scala同樣提供了可變和不可變的替代品。


pic4

image.png

Scala的Set類繼承關系:

pic5

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


pic6

Scala的Map類繼承關系

pic7
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容