scala 數據結構(一):數據結構簡介


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個商品)

可變集合繼承層次一覽圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM