1 數據結構特點
scala集合基本介紹
1)Scala同時支持不可變集合和可變集合,不可變集合可以安全的並發訪問
2)兩個主要的包:
不可變集合:scala.collection.immutable
可變集合: scala.collection.mutable
3)Scala默認采用不可變集合,對於幾乎所有的集合類,Scala都同時提供了可變(mutable)和不可變(immutable)的版本
4)Scala的集合有三大類:序列Seq、集Set、映射Map,所有的集合都擴展自Iterable特質,在Scala中集合有可變(mutable)和不可變(immutable)兩種類型。
可變集合和不可變集合舉例
1)不可變集合:scala不可變集合,就是這個集合本身不能動態變化。(類似java的數組,是不可以動態增長的)
2)可變集合:可變集合,就是這個集合本身可以動態變化的。(比如:ArrayList , 是可以動態增長的)
不可變集合繼承層次一覽圖
小結:
1.Set、Map是Java中也有的集合
2.Seq是Java沒有的,我們發現List歸屬到Seq了,因此這里的List就和java不是同一個概念了
3.我們前面的for循環有一個 1 to 3 , 就是IndexedSeq 下的Vector
4.String也是屬於IndexeSeq
5.我們發現經典的數據結構比如Queue 和 Stack被歸屬到LinearSeq
6.大家注意Scala中的Map體系有一個SortedMap,說明Scala的Map可以支持排序
7.IndexSeq 和 LinearSeq 的區別[IndexSeq是通過索引來查找和定位,因此速度快,比如String就是一個索引集合,通過索引即可定位] [LineaSeq 是線型的,即有頭尾的概念,這種數據結構一般是通過遍歷來查找,它的價值在於應用到一些具體的應用場景 (電商網站, 大數據 推薦系統 :最近瀏覽的10個商品)
可變集合繼承層次一覽圖