- 1、本文档共135页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 如果class Counter{}中,使用 private var value =0,那么,使用scalac命令编译该程序,会出现myCounter.value=3变量无法访问的错误,因为是私有变量,不能从外部访问。 * 定义单例对象不是定义类型,即不能实例化Person类型的变量,这也是被称为“单例”的原因。 * * 从上面结果可以看出,伴生对象中定义的newPersonId()实际上就实现了Java中静态(static)方法的 Scala源代码编译后都会变成JVM字节码,实际上,在编译上面的源代码文件以后,在Scala里面的class和object在Java层面都会被合二为一,class里面的成员成了实例成员,object成员成了static成员 * 建议在重载抽象成员时省略override关键字,这样做的好处是,如果随着业务的进展,父类的抽象成员被实现了而成为非抽象成员时,子类相应成员由于没有override关键字,会出现编译错误,使用户能及时发现父类的改变,而如果子类成员原来就有override关键字,则不会有任何提醒; * * java.lang 包定义了标准Java类;scala包定义了标准的Scala类库;Predef 对象包含了许多Scala程序中常用到的类型、方法和隐式转换的别名定义,例如,前文讲到的输出方法,可以直接写println,而不是Predef.println。 * 也就是说,函数的使用方式和其他数据类型的使用方式完全一致,可以将函数赋值给变量,也可以将函数作为参数传递给其它函数,还可以将函数作为其它函数的返回值。 所有容器的根为Traverable特质,表示可遍历的,它为所有的容器类定义了抽象的foreach方法 * ?行1-3:导入需要的类; ?行6:建立一个File对象,这里假设当前文件夹下有一个testfiles文件夹,且里面包含若干文本文件; ?行7:调用File对象的listFiles方法,得到其下所有文件对象构成的数组,files的类型为Array[java.io.File]; ?行8:建立一个可变的空的映射(Map)对象results,保存统计结果。映射中的条目都是一个(key,value)键值对,其中,key是单词,value是单词出现的次数; ?行9:通过for循环对文件对象进行循环,分别处理各个文件; ?行10:从File对象建立Source对象(参见2.2.2节介绍),方便文件的读取; ?行11:getLines方法返回文件各行构成的迭代器对象,类型为Iterator[String],flatMap进一步将每一行字符串拆分成单词,再返回所有这些单词构成的新字符串迭代器; ?行12-15:对上述的字符串迭代器进行遍历,在匿名函数中,对于当前遍历到的某个单词,如果这个单词以前已经统计过,就把映射results中以该单词为key的映射条目的value增加1。如果以前没有被统计过,则为这个单词新创建一个映射条目,只需要直接对相应的key进行赋值,就实现了添加新的映射条目; ?行17:对Map对象results进行遍历,输出统计结果。 规约操作 reduceLeft和reduceRight:前者从左到右进行遍历,后者从右到左进行遍历 规约操作 规约操作 fold方法:一个双参数列表的函数,从提供的初始值开始规约。第一个参数列表接受一个规约的初始值,第二个参数列表接受与reduce中一样的二元函数参数。 foldLeft和foldRight:前者从左到右进行遍历,后者从右到左进行遍历。 规约操作 拆分操作 拆分操作是把一个容器里的元素按一定的规则分割成多个子容器。常用的拆分方法有partition、groupedBy、grouped和sliding。 partition方法:接受一个布尔函数对容器元素进行遍历,以二元组的形式返回满足条件和不满足条件的两个集合。 groupedBy方法:接受一个返回U类型的函数对容器元素进行遍历,将返回值相同的元素作为一个子容器,并与该相同的值构成一个键值对,最后返回的是一个映射。 grouped和sliding方法:接受一个整型参数n,将容器拆分为多个与原容器类型相同的子容器,并返回由这些子容器构成的迭代器。其中,grouped按从左到右的方式将容器划分为多个大小为n的子容器(最后一个的大小可能小于n);sliding使用一个长度为n的滑动窗口,从左到右将容器截取为多个大小为n的子容器。 拆分操作 2.4.3 函数式编程实例(词频统计) 任何一个可计算函数都能用这种形式来表达和求值 * Scala是一门类Java的多范式语言,它整合了面向对象编程和函数式编程的最佳特性。具体来讲: Scala运行于Java虚拟机(
您可能关注的文档
- 大数据 Spark编程基础(Scala版).ppt
- 大数据 Spark编程基础(Scala版)-第1章-大数据技术概述.ppt
- 大数据 Spark编程基础(Scala版)-第3章-Spark的设计与运行原理.ppt
- 大数据 Spark编程基础(Scala版)-第4章-Spark环境搭建和使用方法.ppt
- 大数据 Spark编程基础(Scala版)-第5章-RDD编程.ppt
- 大数据 Spark编程基础(Scala版)-第6章-Spark SQL.ppt
- 大数据 Spark编程基础(Scala版)-第7章-Spark Streaming.ppt
- 大数据 Spark编程基础(Scala版)-第8章-Spark MLlib.ppt
- Spring Boot企业级开发教程 第1章 SpringBoot入门.ppt
- Spring Boot企业级开发教程 第2章 SpringBoot核心配置与注解.ppt
最近下载
- 2021-2022学年初中化学人教版九年级上册 4.4.4 有关相对分子质量的计算 同步习题.docx VIP
- 浙教版科学九年级上册化学方程式汇总复习.docx
- WWT 0050-2014 文物建筑维修基本材料+青瓦.pdf
- 砂浆作业指导书.doc
- TCI 313-2024 碳酸锂中碳酸锂含量测定 电位滴定法.pdf
- 垃圾填埋场飞灰安全填埋专区扩建及环境综合整治工程可行性研究报告.pdf
- (新课标)新冀人版小学科学五年级上册第五单元12课《火山》说课稿.docx
- 中国基层房颤中心认证标准(试行).PDF
- 快递行业研究框架:“战国”时代,静待改善.pdf
- 《指向高中历史核心素养的大单元教学设计研究》课题研究方案.doc
文档评论(0)