一、可變和不可變集合
### --- 內建大綱
~~~ Scala中的可變和不可變集合
~~~ 集合的三大類:Seq、Set、Map
~~~ 集合的常用算子
~~~ Scala與Java之間的集合轉換
### --- 可變和不可變集合
~~~ 根據容器中元素的組織方式和操作方式,可以分為有序和無序、可變和不可變等不同的容器類别;不可變集合是指集合内的元素一旦初始化完成就不可再進行更改,任何對集合的改變都将生成一個新的集合;
~~~ 可變集合提供了改變集合内元素的方法;
~~~ # Scala同時支援可變集合和不可變集合,主要下面兩個包:
~~~ scala.collection.mutable:定義了可變集合的特質和具體實作類
~~~ scala.collection.immutable:定義了不可變集合的特質和具體實作類
~~~ # 對于幾乎所有的集合類,Scala都同時提供了可變和不可變的版本。
~~~ Scala優先采用不可變集合,不可變集合元素不可更改,可以安全的并發通路。
~~~ Scala集合有三大類:Seq(序列)、Set(集)、Map(映射);
~~~ 所有的集合都擴充自Iterable特質。
### --- 可變不可變集合架構
~~~ immutable不可變集合:
~~~ mutable可變集合:
### --- 小結:
~~~ String屬于IndexedSeq
~~~ Queue隊列和Stack堆這兩個經典的資料結構屬于LinearSeq
~~~ Map體系下有一個SortedMap,說明Scala中的Map是可以支援排序的
~~~ mutable可變集合中Seq中的Buffer下有ListBuffer,它相當于可變的List清單;
~~~ List清單屬于Seq中的LinearSeq