12、scala函数式编程集合
1、Scala的集合体系结构
2、List
3、LikedList
4、Set
5、集合的函数式编程
6、函数式编程综合案例:统计单词总数
1、Scala的集合体系结构
Scala中集合体系主要包括:Iterable、Seq、Set、Map。其中Iterable是所有集合trait的根trai。
Scala中集合分为可变集合和不可变集合两类,其中可变集合就是说集合的元素可以动态修改,而不可变集合的元素在初始化之后,就无法修改了。分别对应scala.collection.mutable和scala.collection.immutable两个包。
Seq下包含Range、ArrayBuffer、List等子trait。其中Range就代表了一个序列,通常可以使用”1 to 10”这种语法来产生一个Range。
2、List
List代表一个不可变的列表,List的创建,val list=List(1,2,3,4)。
List有head和tail,head代表List的第一个元素,tail代表第一个元素之后的所有元素。
List有特殊的::操作符,可以用于将head和tail合并为一个List。
如果一个List只有一个元素,那么它的head就是这个元素,它的tail是Nil。

用递归函数给List中每个元素都加上指定的前缀,并打印加上前缀的元素。

3、LikedList
LinkedList代表一个可变的列表,使用elem可以引用其头部,使用next可以引用其尾部。Scala 2.11以后已弃用。
4、Set
Set代表一个没有重复元素的集合。
将重复元素加入Set是没有用的。
Set不保证插入顺序的。

LinkedHashSet会用一个链表维护插入顺序。

SortedSet会自动根据key来进行排序。

5、集合的函数式编程
map实战:为List中每个元素都添加一个前缀。
faltMap实战:将List中的多行语句拆分成单词。
foreach实战:打印List中的每个单词。
zip实战:对学生姓名和学生成绩进行关联。

6、函数式编程综合案例:统计单词总数
List("Hello World","How are You").flatMap(_.split(" ")).map((_,1)).map(_._2).reduceLeft(_ + _)

12、scala函数式编程集合的更多相关文章
- 9、scala函数式编程-集合操作
一.集合操作1 1.Scala的集合体系结构 // Scala中的集合体系主要包括:Iterable.Seq.Set.Map.其中Iterable是所有集合trait的根trai.这个结构与Java的 ...
- Scala函数式编程(三) scala集合和函数
前情提要: scala函数式编程(二) scala基础语法介绍 scala函数式编程(二) scala基础语法介绍 前面已经稍微介绍了scala的常用语法以及面向对象的一些简要知识,这次是补充上一章的 ...
- scala 函数式编程之集合操作
Scala的集合体系结构 // Scala中的集合体系主要包括:Iterable.Seq.Set.Map.其中Iterable是所有集合trait的根trai.这个结构与Java的集合体系非常相似. ...
- Scala函数式编程(五) 函数式的错误处理
前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Scala函数式编程(三) scala集合和函数 Scala函数式编程(四)函数式的数据结 ...
- Scala函数式编程(六) 懒加载与Stream
前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Scala函数式编程(三) scala集合和函数 Scala函数式编程(四)函数式的数据结 ...
- Scala函数式编程(四)函数式的数据结构 上
这次来说说函数式的数据结构是什么样子的,本章会先用一个list来举例子说明,最后给出一个Tree数据结构的练习,放在公众号里面,练习里面给出了基本的结构,但代码是空缺的需要补上,此外还有预留的test ...
- Scala函数式编程(四)函数式的数据结构 下
前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Scala函数式编程(三) scala集合和函数 Scala函数式编程(四)函数式的数据结 ...
- 大数据笔记(二十五)——Scala函数式编程
===================== Scala函数式编程 ======================== 一.Scala中的函数 (*) 函数是Scala中的头等公民,就和数字一样,可以在变 ...
- Scala 函数式编程思想
Spark 选择 Scala 作为开发语言 在 Spark 诞生之初,就有人诟病为什么 AMP 实验室选了一个如此小众的语言 - Scala,很多人还将原因归结为学院派的高冷,但后来事实证明,选择 S ...
随机推荐
- vue2的简单时间选择组件
github: https://github.com/longfei59418888/vui (记得给一个 start,以后有一起讨论,各种好组件) demo : http://60.205.2 ...
- 项目中应用到的框架和技术之三——echarts
echarts是效果丰富的图表库,当时考虑怎么炫怎么来就引入了这个库来做图表展示,官网:http://echarts.baidu.com 项目里用的比较浅,估且一看吧 代码: this.toChart ...
- python-pexpect_01安装
一:python2.7.12安装 #获取python2.7.12 wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz ...
- 在Centos6.5下Samba的简单配置
本文的目的主要用来说明怎样在CentOS6.5的环境下配置出一个简单可用的samba服务,而且能够通过windows对其文件进行訪问 安装相关软件 # yum install samba samba- ...
- Codeforces Round #273 (Div. 2) B . Random Teams 贪心
B. Random Teams n participants of the competition were split into m teams in some manner so that e ...
- jenkins对接gitlab和git
1 需要的插件 jenkins的git插件和jenkins的gitlab插件. 2 对接gitlab 在系统配置中,随便起一个连接的名字,设置url,可以直接用ip地址,端口号默认是80,不需要写明. ...
- 大神是如何装逼的 之 vim插件使用taglist和nerdtree
本文转载自:http://blog.csdn.net/yaoxingshuai/article/details/51385332 本文主要讲述如何在vim下配置taglist,nerdtree(看代码 ...
- codeforce1070 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred) 题解
秉承ACM团队合作的思想懒,这篇blog只有部分题解,剩余的请前往星感大神Star_Feel的blog食用(表示男神汉克斯更懒不屑于写我们分别代写了下...) C. Cloud Computing 扫 ...
- PCB 模拟Windows管理员域帐号安装软件
在我们PCB行业中,局域网的电脑一般都会加入域控的,这样可以方便集中管理用户权限,并可以对访问网络资源可以进行权限限制等. 由于加入了域控对帐号权限的管理,这样一来很多人都无权限安装软件,比如:PCB ...
- hibernate基础简单入门1---helloword
1:目录结果 2:实体类(student.java) package com.www.entity; public class Student { private int id; private St ...