一、Scala的集合體繫結構編程
二、List函數式編程
三、LikedList函數
四、Setspa
五、集合的函數式編程scala
六、函數式編程綜合案例:統計單詞總數3d
Scala中集合體系主要包括:Iterable、Seq、Set、Map。其中Iterable是全部集合trait的根trai。blog
Scala中集合分爲可變集合和不可變集合兩類,其中可變集合就是說集合的元素能夠動態修改,而不可變集合的元素在初始化以後,就沒法修改了。分別對應scala.collection.mutable和scala.collection.immutable兩個包。排序
Seq下包含Range、ArrayBuffer、List等子trait。其中Range就表明了一個序列,一般可使用」1 to 10」這種語法來產生一個Range。遞歸
List表明一個不可變的列表,List的建立,val list=List(1,2,3,4)。ip
List有head和tail,head表明List的第一個元素,tail表明第一個元素以後的全部元素。
List有特殊的::操做符,能夠用於將head和tail合併爲一個List。
若是一個List只有一個元素,那麼它的head就是這個元素,它的tail是Nil。
用遞歸函數給List中每一個元素都加上指定的前綴,並打印加上前綴的元素。
LinkedList表明一個可變的列表,使用elem能夠引用其頭部,使用next能夠引用其尾部。Scala 2.11之後已棄用。
Set表明一個沒有重複元素的集合。
將重複元素加入Set是沒有用的。
Set不保證插入順序的。
LinkedHashSet會用一個鏈表維護插入順序。
SortedSet會自動根據key來進行排序。
map實戰:爲List中每一個元素都添加一個前綴。
faltMap實戰:將List中的多行語句拆分紅單詞。
foreach實戰:打印List中的每一個單詞。
zip實戰:對學生姓名和學生成績進行關聯。
List("Hello World","How are You").flatMap(_.split(" ")).map((_,1)).map(_._2).reduceLeft(_ + _)