1. 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 操作
转载于:https://www.cnblogs.com/IChing/p/7121730.html