码迷,mamicode.com
首页 > 其他好文 > 详细

第87讲:scala中使用For表达式做查询

时间:2015-08-17 23:20:12      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

今天我们来学习下如何用for表达式在scala中做查询。

先来看看示例代码

case class Book(title:String,authors:List[String])

object text_87 {   def main(args:Array[String]){

        val books:List[Book] = List(

        Book("scala programming",List("zhangbanner","dongxicheng","wangjialin")),

        Book("quick scala",List("shiming","xuyangkai")),

        Book("spark programming",List("wangjialin","wangjiahu")),

        Book("hadoop learning",List("dongxicheng","chenchao"))

        )

        val result = for(b<-books;a<-b.authors if a startsWith "dongxicheng") yield b.title

        println(result)

        val result2 = for(b <- books if (b.title indexOf "programming" ) >= 0) yield b.title

        println(result2)

     }

}

 

首先,我们定义了一个关于书籍的case class Book

然后,使用case class建立了一个书籍库books,它是一个列表,里面每个元素都是一本书以及书的属性。

然后,我们就开始使用for表达式开始进行查询了。

首先,第一个查询,我们通过生成器,便利books列表的所有书籍,接着使用另一个生成器遍历每个书籍的作者列表,建立了一个守卫,取出符合条件的作者名的书,最后,将符合条件的书籍的title形成列表。

再来看看第二个查询,找出title中含有programming的书,并将书的名称形成新列表。

 

分享下更多的scala资源吧:

 

百度云盘:http://pan.baidu.com/s/1gd7133t

 

微云云盘:http://share.weiyun.com/047efd6cc76d6c0cb21605cfaa88c416

 

360云盘: http://yunpan.cn/cQN9gvcKXe26M (提取码:13cd)

 

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark

 

关注微信账号,获取更多关于scala学习内容

 

第87讲:scala中使用For表达式做查询

标签:

原文地址:http://www.cnblogs.com/qingyuesama/p/4737866.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!