推薦序 iii
序 iv
第 1 章 Scala 集閤庫簡介 1
Scala 編程語言 1
Scala 集閤 2
誰應該閱讀此書 7
為什麼寫這本書 7
印刷體變化 7
內容概要 8
第 2 章 Traversable 9
初始化 Traversable 對象 10
集閤的靜態類型和類型擦除 12
對 Traversable 實例中每個元素執行操作(foreach) 13
平展一個 Traversable 實例 14
轉置 Traversable 集閤(transpose) 17
unzip 一個 Traversable 18
連接兩個 Traversable 到一個新的 Traversable 19
連接多個 Traversable 對象到一個新的 Traversable 21
利用偏函數篩選元素 22
對所有的元素應用一個函數,並將結果放入一個新的 Traversable 對象中 23
利用 scan 計算 Traversable 元素的階乘 24
使用指定的函數摺疊 Traversable 的元素 26
判斷一個 Traversable 非空 28
得到 Traversable 對象的特定的元素 29
得到 Traversable 對象的尾部 30
選擇 Traversable 的一段子集 31
選取 Traversable 對象的前 N 個元素 32
跳過開頭的前 N 個元素,選擇剩餘的元素 33
根據條件篩選元素 34
給 Traversable 對象的元素分組 35
檢查 Traversable 對象中的元素是否滿足條件 37
統計滿足斷言的元素個數 37
歸約操作 38
在 Traversable 對象上調用聚閤函數 40
基於 Traversable 對象生成字符串 41
集閤類型轉換 42
復製元素到一個數組 44
返迴一個 Traversable 對象的視圖 view 45
得到 Traversable 對象的底層實現 46
使用一個相同的元素填充元素 46
在某個值域上生成指定間隔的隊列 47
tabulate 48
生成空的 Traversable 對象 48
得到 Traversable 對象的串行對象和並行對象 49
第 3 章 Iterable 51
將 Iterable 對象分組 53
以滑動窗口的方式分組 Iterable 對象 54
zip 兩個集閤 55
zipAll 兩個長度不同的集閤 56
使用本身的索引 zip 一個 Iterable 集閤 57
檢查兩個 Iterables 是否包含相同的元素 57
得到尾部的 N 個元素 58
去掉尾部的 N 個元素 59
第 4 章 Seq 60
得到序列的索引集閤 61
序列的長度 61
得到指定索引的元素 62
尋找指定元素的索引 63
尋找滿足條件的元素索引 64
尋找指定的子序列 64
尋找滿足條件的子序列的長度 65
增加元素到序列中 65
替換序列中的元素 66
更新指定位置的索引 66
排序 67
反轉一個序列 68
序列是否包含某個前綴或者後綴 69
序列是否包含某子序列 69
檢查兩個序列對應的元素是否滿足斷言 69
集閤操作 70
去掉重復的元素 71
得到元素的各種排列 72
得到序列的指定長度的元素的組閤 72
將序列進行轉換 73
偏函數的應用 74
IndexedSeq 和 LinearSeq 75
Range 和 NumericRange 76
Vector 77
第 5 章 Set 80
檢查 Set 集閤是否包含元素 82
增加一個元素或者一組元素到 Set 集閤中 82
從 Set 集閤中去掉一個元素或一組元素 83
二元 Set 集閤運算 84
更新一個可變 Set 集閤的元素 85
剋隆 Set 集閤 86
SortedSet 86
BitSet 88
HashSet 90
ListSet 91
LinkedHashSet 92
第 6 章 Map 94
初始化 94
根據鍵值查找值 95
包含 96
增加新的鍵值對 97
刪除鍵 97
根據鍵更新它的值 98
得到鍵的集閤 99
得到值的集閤 99
遍曆 Map 集閤 100
如何將一個可變 Map 集閤轉換成不可變 Map 集閤 100
新的轉換函數 101
偏函數 101
剋隆 102
反轉 Map 的鍵值對 102
將一個 Set 集閤轉換成 Map 集閤 103
IntMap, LongMap 103
HashMap 104
SortedMap 和 immutable.TreeMap 104
immutable.ListMap,mutable.ListMap 105
mutable.LinkedHashMap 105
mutable.MultiMap 106
mutable.OpenHashMap 107
mutable.WeakHashMap 107
第 7 章 數組109
數組的初始化 110
數組的長度 112
更新數組 113
連接兩個數組 113
復製數組 113
生成等差數列 114
填充數組 114
tabulate 115
ArrayOps 115
Searching 116
WrappedArray 116
第 8 章 字符串(String 和 StringBuilder) 117
字符串方法 118
拼接字符串多次 119
把首字母大寫 119
字符串比較 120
字符串格式化 120
按照換行符分割字符串 123
正則錶達式 124
分割字符串 124
strip 字符串 125
集閤方法 126
字符串竄改(String Interpolation) 126
StringBuilder 128
第 9 章 緩衝器 129
增加元素 129
移除元素 130
Trim、clear 和 clone 131
ListBuffer, ArrayBuffer 132
RingBuffer 132
第 10 章 列錶 134
Nil, :: 134
初始化,以及 :: 和 ::: 操作符 135
模式匹配 136
MutableList 136
使用列錶實現快速排序 137
Option 137
第 11 章 棧和隊列 139
棧(Stack)139
ArrayStack . 141
不可變隊列(immutable.Queue) 143
可變隊列(mutable.Queue) 144
優先級隊列(PriorityQueue) 144
第 12 章 流 147
初始化:#:: 和 #::: 148
流相關類 150
記憶化(memoization) 150
棧溢齣(StackOverflowError) 150
OOM 問題 152
無限隨機數流 153
無限整數流 153
中綴錶達式和模式匹配 153
無限流 154
蓄水池抽樣算法 156
第 13 章 並行集閤 158
並行集閤的類型 159
可産生副作用的操作(Side-Effecting Operations) 160
非結閤操作(Non-Associative Operations)161
性能 162
串行集閤和並行集閤的轉換 163
不同集閤類型之間的轉換 164
並發集閤配置 165
第 14 章 Scala 集閤總結 168
相等(Equality) 168
性能 170
與 Java 集閤類的轉換 172
技巧和陷阱 174
發布訂閱類 177
for 推導式 (for comprehensions) 178
其他集閤庫 179
· · · · · · (
收起)