第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