十二、scala函數式編程集合

一、Scala的集合體繫結構編程

二、List函數式編程

三、LikedList函數

四、Setspa

五、集合的函數式編程scala

六、函數式編程綜合案例:統計單詞總數3d

一、Scala的集合體繫結構

  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表明一個不可變的列表,List的建立,val list=List(1,2,3,4)。ip

  List有head和tail,head表明List的第一個元素,tail表明第一個元素以後的全部元素。

  List有特殊的::操做符,能夠用於將head和tail合併爲一個List。

  若是一個List只有一個元素,那麼它的head就是這個元素,它的tail是Nil。

  

  用遞歸函數給List中每一個元素都加上指定的前綴,並打印加上前綴的元素。

  

三、LikedList

  LinkedList表明一個可變的列表,使用elem能夠引用其頭部,使用next能夠引用其尾部。Scala 2.11之後已棄用。

四、Set

  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(_ + _)

  

相關文章
相關標籤/搜索