首页 > 代码库 > scala 高级十六 scala 集合和集合的高级特性 map flatten fllatmap zip reduce zip 等操作
scala 高级十六 scala 集合和集合的高级特性 map flatten fllatmap zip reduce zip 等操作
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
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
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
filter
移除任何对传入函数计算结果为false的元素。返回一个布尔值的函数通常被称为谓词函数[或判定函数]。
var lst=List(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 操作
scala 高级十六 scala 集合和集合的高级特性 map flatten fllatmap zip reduce zip 等操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。