咱們作spark開發 會使用不少spark的高階函數 因此 今天我就在linux服務上使用scala高階函數linux
聲明一個List集合:web
List集合所在的包已經被預約義自動引入,因此此處就不須要在引入包了,這裏直接使用List實例化對象,其實用List的object對象的apply方法app
咱們使用map函數把list中的每一個值都乘以3:函數
x表示l中每個元素,map對l中的每個元素進行遍歷操做,因爲List中只有一種類型的元素,因此咱們在執行馬屁操做的時候能夠省略其類型,以下所示:spa
List集合中只有一個參數的時候,咱們能夠去掉參數中的括號:命令行
爲了能保存全部代碼,我仍是使用IDEA吧scala
scala中的集合:orm
集合主要有List、Set、Tuple、Map等對象
在scala下的org.scala.collection下建立scala類CollectionOperationsip
在IDEA中建立一個List實例:
咱們看一下List代碼實現:
源碼中說明了其內部是apply的方式來完成實例化的:
使用一樣的方式實例化Set:
咱們可也看下Set實例化對象的實現:
接下來咱們在linux命令行終端中砍下集合的操做,首先看Set:
發現Set中不會存儲重複的元素
下面看下Tuple的申明和使用:
tuple 訪問的時候下標是從1開始的
對於Tuple而言,若是隻有兩個元素的時候咱們還可使用以下方式建立:
接下來咱們看下Map的定義吧:
Map自己使用的是可變參數的方式,因此能夠給Map賦多個值:
咱們看一下Option類型,Option表明了一個無關緊要的值:
Option有兩個子類:Some 和None,下面看看Option的使用:
接下來咱們看下filter的使用:
對集合的zip操做:
下面咱們看下partition對集合的切割操做:
使用flatten的多集合進行扁平化操做:
flatMap是map和flatten操做的集合,先進行map操做後再進行flatten操做: