本文共 1470 字,大约阅读时间需要 4 分钟。
所谓一阶函数就是函数的参数不是函数,而是普通的变量;所谓高阶函数就是函数的参数是函数,此时认为函数是高阶函数。
用+=可以向集合当中添加具体的元素,用++=可以向集合当中添加具体的集合(List或者Array)。
1>map就是对集合中的所有元素执行一个具体的函数,将函数作用在数值上,并返回一个新的集合结果
2>flatMap:首先对List内部的每个成员进行map操作,然后在产生结果的基础上 进行flat–将map操作后的结果进行合并,产生合并之后的集合。
简单来说:flatMap首先执行map操作,然后对产生集合的结果进行合并,合并出一个新的集合结果
3>foreach:就是对集合中的每一个元素执行一个具体的函数,将函数作用在数值上,与map不同的是,foreach不产生具体的 结果,结果是Unit类型的。
4>filter:过滤出列表中符合条件的元素,filter结构中传进来的参数是一个结构为布尔类型的函数
ListBuffer、ArrayBuffer分别是List与Array的新版本,在ListBuffer、ArrayBuffer中可以对List与Array进行更加灵活、高效的操作
Queue(对列)与Stack(堆)是两种经典的数据结构。++ ++B: List[B] 从列表的尾部添加另外一个列表
++: ++:B >: A, That(implicit bf: CanBuildFrom[List[A], B, That]): That 在列表的头部添加一个列表
+: +:(elem: A): List[A] 在列表的头部添加一个元素 :+ :+(elem: A): List[A] 在列表的尾部添加一个元素 :: ::(x: A): List[A] 在列表的头部添加一个元素 ::: :::(prefix: List[A]): List[A] 在列表的头部添加另外一个列表 提示: 这里给大家一个提示,任何以冒号结果的操作符,都是右绑定的,即 0 :: List(1,2,3) = List(1,2,3).::(0) = List(0,1,2,3) 从这里可以看出操作::其实是右边List的操作符,而非左边Int类型的操作符map、flatMap, flatten;
reduce,reduceLeft,reduceRight;
fold,foldLeft,foldRight;
sortBy,sortWith,sorted;
filter, filterNot
count;
diff, union, intersect,distinct;
groupBy, grouped;
scan,scanLeft,scanRight;
take,takeRight,takeWhile;
drop,dropRight,dropWhile;
span, splitAt, partition;
padTo;
combinations,permutations;
zip, zipAll, zipWithIndex, unzip,unzip3;
slice;
sliding;
updated;
(后续继续更新。。。。)
转载地址:http://prvlf.baihongyu.com/