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 等操作的主要内容,如果未能解决你的问题,请参考以下文章