天天看點

|NO.Z.00062|——————————|BigDataEnd|——|Hadoop&Scala.V01|——|Scala.v01|集合|可變和不可變集合|

一、可變和不可變集合

### --- 內建大綱

~~~     Scala中的可變和不可變集合
~~~     集合的三大類:Seq、Set、Map
~~~     集合的常用算子
~~~     Scala與Java之間的集合轉換      
### --- 可變和不可變集合
~~~     根據容器中元素的組織方式和操作方式,可以分為有序和無序、可變和不可變等不同的容器類别;不可變集合是指集合内的元素一旦初始化完成就不可再進行更改,任何對集合的改變都将生成一個新的集合;
~~~     可變集合提供了改變集合内元素的方法;

~~~     # Scala同時支援可變集合和不可變集合,主要下面兩個包:
~~~     scala.collection.mutable:定義了可變集合的特質和具體實作類
~~~     scala.collection.immutable:定義了不可變集合的特質和具體實作類

~~~     # 對于幾乎所有的集合類,Scala都同時提供了可變和不可變的版本。
~~~     Scala優先采用不可變集合,不可變集合元素不可更改,可以安全的并發通路。
~~~     Scala集合有三大類:Seq(序列)、Set(集)、Map(映射);
~~~     所有的集合都擴充自Iterable特質。      
### --- 可變不可變集合架構

~~~     immutable不可變集合:
~~~     mutable可變集合:      
|NO.Z.00062|——————————|BigDataEnd|——|Hadoop&Scala.V01|——|Scala.v01|集合|可變和不可變集合|
|NO.Z.00062|——————————|BigDataEnd|——|Hadoop&Scala.V01|——|Scala.v01|集合|可變和不可變集合|
### --- 小結:

~~~     String屬于IndexedSeq
~~~     Queue隊列和Stack堆這兩個經典的資料結構屬于LinearSeq
~~~     Map體系下有一個SortedMap,說明Scala中的Map是可以支援排序的
~~~     mutable可變集合中Seq中的Buffer下有ListBuffer,它相當于可變的List清單;
~~~     List清單屬于Seq中的LinearSeq      

繼續閱讀