scala 高级十六 scala 集合和集合的高级特性 map flatten fllatmap zip reduce zip 等操作

Posted jialiming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 等操作的主要内容,如果未能解决你的问题,请参考以下文章

Scala 高阶:集合内容汇总(下篇)

scala:集合常用函数

13. Scala函数式编程(高级部分)

Scala入门到精通——第十六节 泛型与注解

Scala集合

好程序员大数据学习路线分享Scala系列之集合操作函数