您的位置:首页 > 大数据

大数据系列修炼-Scala课程88

2016-10-10 09:59 323 查看
大数据系列修炼-Scala课程88

核心内容:

1、Scala中使用For表达式实现map、flatMap、filter操作代码实战

1、Scala中使用For表达式实现map、flatMap、filter操作代码实战
1>在scala当中,for循环的功能通过map、flatMap、filter都可以实现

2>在scala当中,map、flatMap、filter、foreach这些高阶函数的功能通过for循环也都可以实现

实例程序1:

object For_Advanced {

def main(args: Array[String]) {}

def map[A,B](list: List[A],f: A => B): List[B] =
for(element <- list) yield f(element)

def flatMap[A,B](list: List[A], f: A=> List[B]): List[B] =
for(x <- list; y <- f(x)) yield y

def filter[A](list: List[A], f: A => Boolean): List[A] =
for(elem <- list if f(elem)) yield elem
}


实例程序2:

object App6
{
def main(args:Array[String]):Unit =
{
import scala.collection.mutable.ListBuffer  //引入一个动态数组
val listBuffer = new ListBuffer[Int]()
listBuffer  ++= List(10,20,30,40,50,60)
for(ele<- listBuffer) print(ele)
println
val list2 = for(ele<- listBuffer) yield ele*2
println(list2.mkString("[","\t","]"))
//在for循环当中加入守卫(if条件表达式)
val list3 = for(ele<- listBuffer;if(ele>30)) yield ele
println(list3.mkString("[","\t","]"))
}
}


运行结果:

102030405060
[20 40  60  80  100 120]
[40 50  60]


如有问题,欢迎留言指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: