Scala集合的高级操作如map、flatten、flatMap、zip、reduce等,如何一气呵成?
- 内容介绍
- 文章标签
- 相关推荐
本文共计537个文字,预计阅读时间需要3分钟。
Scala的List和Set操作:Set和List的差集不会超过Set中不允许多余的元素。`var set=Set()` + 1. Scala的List和Set操作 // Set和List的差集不会超过Set中不允许多余的元素。
1.scala的列表List和集Set的操作Set和list差不多不过Set中不允许有重复的元素varsetscala.collection.mutable.Set1. scala 的列表List 和集Set 的操作
//Set 和list 差不多不过 Set 中不允许有重复的元素 var setscala.collection.mutable.Set[Int](); // 会产生一个新的对象而不是在set 中动态增加 set.(1) // 会在原先的set 中动态的增加元素而不是产生一个新的对象。 set.(1,2,3) //这个会输出一个排序以后的 集合 比如 输入 7,4,8,6,1 输出 1,46,7,8 import scala.collection.mutable.SortedSet var sortSortedSet[Int]() sort.(7,4,8,6,1) sort.foreach(println)
2. 集合的函数组合子Functional Combinators
map
map对列表中的每个元素应用一个函数返回应用后的元素所组成的列表。
。
var lstList(1,2,3,4)//Map 映射到list 集合中的没一位然后结构乘以2lst.map((x:Int)>x*2)//上一步的匿名函数简化 去掉类型系统推断类型lst.map(x>x*2)//进一步简化直接写返回表达式var li lst.map(_*2)for(x<-li)println(x)
foreach
foreach很像map但没有返回值。foreach仅用于有副作用[side-effects]的函数。
var lstList(1,2,3,4)//用foreach 输出list中的参数lst.foreach((x:Int)>{println(x*2)})//精简后的foreachlst.foreach(_*2)
filter
filter移除任何对传入函数计算结果为false的元素。返回一个布尔值的函数通常被称为谓词函数[或判定函数]。
var lstList(1,2,3,4)//过滤>2 的所有蒜素lst.filter((x:Int)>x>2).foreach(println)//精简后的结构lst.filter(_>2).foreach(println)
flatten
flatten将嵌套结构扁平化为一个层次的集合。
flatMap
flatMap是一种常用的组合子结合映射[mapping]和扁平化[flattening]。 flatMap需要一个处理嵌套列表的函数然后将结果串连起来。
Reduce
reduece 下面的函数 通过reduce 把所有的参数相加
fold
fold 类似于reduce 不过不同的是 fold 需要两个参数一个参数用来设置偏移量 比如下面的例子偏移量是10 加上reduce 运算的10 得20
zip
zip将两个列表的内容聚合到一个对偶列表中。
sum,max,min 操作
转载于:www.cnblogs.com/IChing/p/7121730.html
本文共计537个文字,预计阅读时间需要3分钟。
Scala的List和Set操作:Set和List的差集不会超过Set中不允许多余的元素。`var set=Set()` + 1. Scala的List和Set操作 // Set和List的差集不会超过Set中不允许多余的元素。
1.scala的列表List和集Set的操作Set和list差不多不过Set中不允许有重复的元素varsetscala.collection.mutable.Set1. scala 的列表List 和集Set 的操作
//Set 和list 差不多不过 Set 中不允许有重复的元素 var setscala.collection.mutable.Set[Int](); // 会产生一个新的对象而不是在set 中动态增加 set.(1) // 会在原先的set 中动态的增加元素而不是产生一个新的对象。 set.(1,2,3) //这个会输出一个排序以后的 集合 比如 输入 7,4,8,6,1 输出 1,46,7,8 import scala.collection.mutable.SortedSet var sortSortedSet[Int]() sort.(7,4,8,6,1) sort.foreach(println)
2. 集合的函数组合子Functional Combinators
map
map对列表中的每个元素应用一个函数返回应用后的元素所组成的列表。
。
var lstList(1,2,3,4)//Map 映射到list 集合中的没一位然后结构乘以2lst.map((x:Int)>x*2)//上一步的匿名函数简化 去掉类型系统推断类型lst.map(x>x*2)//进一步简化直接写返回表达式var li lst.map(_*2)for(x<-li)println(x)
foreach
foreach很像map但没有返回值。foreach仅用于有副作用[side-effects]的函数。
var lstList(1,2,3,4)//用foreach 输出list中的参数lst.foreach((x:Int)>{println(x*2)})//精简后的foreachlst.foreach(_*2)
filter
filter移除任何对传入函数计算结果为false的元素。返回一个布尔值的函数通常被称为谓词函数[或判定函数]。
var lstList(1,2,3,4)//过滤>2 的所有蒜素lst.filter((x:Int)>x>2).foreach(println)//精简后的结构lst.filter(_>2).foreach(println)
flatten
flatten将嵌套结构扁平化为一个层次的集合。
flatMap
flatMap是一种常用的组合子结合映射[mapping]和扁平化[flattening]。 flatMap需要一个处理嵌套列表的函数然后将结果串连起来。
Reduce
reduece 下面的函数 通过reduce 把所有的参数相加
fold
fold 类似于reduce 不过不同的是 fold 需要两个参数一个参数用来设置偏移量 比如下面的例子偏移量是10 加上reduce 运算的10 得20
zip
zip将两个列表的内容聚合到一个对偶列表中。
sum,max,min 操作
转载于:www.cnblogs.com/IChing/p/7121730.html

