Scala--基础--集合
可变集合 scala.collection.mutable
不可变集合 scala.collection.immutable
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开始)个元素 |