标签:组成 列表 匿名函数 技术分享 过滤 需要 排序 blog ping
1. scala 的列表List 和集Set 的操作
//Set 和list 差不多,不过 Set 中不允许有重复的元素
var set=scala.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 sort=SortedSet[Int]()
sort.+=(7,4,8,6,1)
sort.foreach(println)
2. 集合的函数组合子(Functional Combinators)
map
对列表中的每个元素应用一个函数,返回应用后的元素所组成的列表。
。
var lst=List(1,2,3,4) //Map 映射到list 集合中的没一位,然后结构乘以2 lst.map((x:Int)=>x*2) //上一步的匿名函数简化 去掉类型,系统推断类型 lst.map(x=>x*2) //进一步简化直接写返回表达式 var li= lst.map(_*2) for(x<-li) println(x)
foreach
很像map,但没有返回值。foreach仅用于有副作用[side-effects]的函数。
var lst=List(1,2,3,4) //用foreach 输出list中的参数 lst.foreach((x:Int)=>{println(x*2)}) //精简后的foreach lst.foreach(_*2)
filter
移除任何对传入函数计算结果为false的元素。返回一个布尔值的函数通常被称为谓词函数[或判定函数]。
var lst=List(1,2,3,4) //过滤>2 的所有蒜素 lst.filter((x:Int)=>x>2).foreach(println) //精简后的结构 lst.filter(_>2).foreach(println)
flatten
将嵌套结构扁平化为一个层次的集合。
flatMap
是一种常用的组合子,结合映射[mapping]和扁平化[flattening]。 flatMap需要一个处理嵌套列表的函数,然后将结果串连起来。
reduece 下面的函数 通过reduce 把所有的参数相加
fold 类似于reduce 不过不同的是 fold 需要两个参数,一个参数用来设置偏移量, 比如下面的例子,偏移量是10 ,加上reduce 运算的10 得20
zip
将两个列表的内容聚合到一个对偶列表中。
scala 高级十六 scala 集合和集合的高级特性 map flatten fllatmap zip reduce zip 等操作
标签:组成 列表 匿名函数 技术分享 过滤 需要 排序 blog ping
原文地址:http://www.cnblogs.com/IChing/p/7121730.html