可變集合 scala.collection.mutable編程
不可變集合 scala.collection.immutableapp
List: 不可變列表 | |
建立: val list = List(1, 2, 3, 4) | |
或 val list = List.apply(1, 2, 3, 4) | |
.head | 取出第一個元素 |
.tail | 取出第一個元素以後的全部元素 |
List運算符 | |
value :: list | 將一個元素和一個列表合併成一個新列表 |
scala.collection.mutable.LinkedList: 可變列表 | |
.elem | 取出第一個元素 |
.head | 取出第一個元素 |
.next | 取出出第一個元素外的子LinkedList |
.tail | 取出出第一個元素外的子LinkedList |
LinkedList運算符 | |
= list | 賦給新變量但指向同一列表 |
Set: 沒有重複元素的無序集合 | |
scala.collection.mutable.HashSet():無序集合 | |
scala.collection.mutable.LinkedHashSet():有序集合 | |
scala.collection.mutable.SortedSet():按照排序後順序保存 | |
Set運算符 | |
set += value | 往集合中添加元素 |
集合的函數式編程 | |
.map(fun) | 對集合中每一個元素都執行fun, 返回值(一個元素)做爲新集合的值 |
(2 + _) 表示對每一個元素都執行 + 2. 這種含 _ 的縮寫方式其實就表示一個參數爲 _ 返回值爲 2+_ 的函數 | |
.flatMap(fun) | 傳入含一個參數返回爲一個集合的函數, 會把全部返回值合併爲一個集合 |
.foreach(fun) | 傳入含一個參數無返回值的函數 |
.reduceLeft(fun) | 傳入含兩個參數一個返回值的函數, 把集合的前兩個元素傳入函數並將其計算結果以及集合中下個元素傳入函數進行計算 |
.zip(set) | 將 (a, b, c, d) 與 (e, f, g, h) 合併成((a, e), (b, f), (c, g), (d, h))的格式 |
tuple: (a, b, c, ...) 由圓括號括起來的多個元素組成一個tuple | |
._n | 取出tuple中的第n(從1開始)個元素 |