scala集合和高级函数操作

时间:2023-03-09 14:36:01
scala集合和高级函数操作

scala常用函数操作

reduceLeft   是将集合的元素从左向右进行所需要的相应操作,图以减法为例展示,表达的算法是 : 1-2-3-4-5

例: (1 to 5).reduceLeft(_ - _)  结果为-13

​     scala集合和高级函数操作

reduceRight  是将集合的元素从右向左进行所需要的相应操作,图以减法为例展示,表达的算法是 :1-(2-(3-(4-5)))

例:(1 to 5).reduceRight(_ - _) 结果为3

scala集合和高级函数操作

foldLeft  设定一个值,该值对集合从左向右进行所必要的相应操作,图以减法为例展示,

scala集合和高级函数操作

foldRight 设定一个值,从右向左集合对该值进行所必要的相应操作,图以减法为例展示,

scala集合和高级函数操作

foreach与map区别

Scala中的集合对象都有foreach和map两个方法。两个方法的共同点在于:都是用于遍历集合对象,并对每一项执行指定的方                法。而两者的差异在于:foreach无返回值(准确说返回void),map返回集合对象。见如下代码及运行结果:foreach 得到的是void, 而     map 得到的是colletion 。foreach和map的运行结果一致。结论就是:foreach 无法代替map. 而map方法却可以代替foreach。

例 foreach                                                       例map

scala集合和高级函数操作       scala集合和高级函数操作

flatMap  与 Map区别

map操作是针对集合的典型变换操作,它将某个函数应用到集合中的每个元素,并产生一个结果集合。

flatMap是map的一种扩展。在flatMap中,我们会传入一个函数,该函数对每个输入都会返回一个集合(而不是一个元素),然后,       flatMap把生成的多个集合“拍扁”成为一个集合。简单的讲,就是将多个集合合并成一个包含所有集合元素的集合

map例

scala集合和高级函数操作

flatmap例

scala集合和高级函数操作

scala集合和高级函数操作

结果为

scala集合和高级函数操作

head    获取集合的第一个元素

last      获取集合的最后一个元素

tail      获取除去集合中第一个元素的所有元素

is​Empty   判断是否为空

leftOuterJoin

aggregateByKey