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函数式编程集合的更多相关文章

  1. 9、scala函数式编程-集合操作

    一.集合操作1 1.Scala的集合体系结构 // Scala中的集合体系主要包括:Iterable.Seq.Set.Map.其中Iterable是所有集合trait的根trai.这个结构与Java的 ...

  2. Scala函数式编程(三) scala集合和函数

    前情提要: scala函数式编程(二) scala基础语法介绍 scala函数式编程(二) scala基础语法介绍 前面已经稍微介绍了scala的常用语法以及面向对象的一些简要知识,这次是补充上一章的 ...

  3. scala 函数式编程之集合操作

    Scala的集合体系结构 // Scala中的集合体系主要包括:Iterable.Seq.Set.Map.其中Iterable是所有集合trait的根trai.这个结构与Java的集合体系非常相似. ...

  4. Scala函数式编程(五) 函数式的错误处理

    前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Scala函数式编程(三) scala集合和函数 Scala函数式编程(四)函数式的数据结 ...

  5. Scala函数式编程(六) 懒加载与Stream

    前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Scala函数式编程(三) scala集合和函数 Scala函数式编程(四)函数式的数据结 ...

  6. Scala函数式编程(四)函数式的数据结构 上

    这次来说说函数式的数据结构是什么样子的,本章会先用一个list来举例子说明,最后给出一个Tree数据结构的练习,放在公众号里面,练习里面给出了基本的结构,但代码是空缺的需要补上,此外还有预留的test ...

  7. Scala函数式编程(四)函数式的数据结构 下

    前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Scala函数式编程(三) scala集合和函数 Scala函数式编程(四)函数式的数据结 ...

  8. 大数据笔记(二十五)——Scala函数式编程

    ===================== Scala函数式编程 ======================== 一.Scala中的函数 (*) 函数是Scala中的头等公民,就和数字一样,可以在变 ...

  9. Scala 函数式编程思想

    Spark 选择 Scala 作为开发语言 在 Spark 诞生之初,就有人诟病为什么 AMP 实验室选了一个如此小众的语言 - Scala,很多人还将原因归结为学院派的高冷,但后来事实证明,选择 S ...

随机推荐

  1. System.out.print()思考?

            System.out.print()思考       问题?                 System.out.pritln();  中是包名.类名.方法名吗? 解释: Syste ...

  2. 洛谷 P2683 小岛

    P2683 小岛 题目背景 西伯利亚北部的寒地,坐落着由 N 个小岛组成的岛屿群,我们把这些小岛依次编号为 1 到 N . 题目描述 起初,岛屿之间没有任何的航线.后来随着交通的发展,逐渐出现了一些连 ...

  3. Eclipse创建Maven多模块工程

    一.创建父项目 [New]->[Maven Project] 在弹出界面中选择[Create a simple project...] 二.创建子项目 选中刚建的父项目,在弹出菜单中点击[New ...

  4. javascript 事件对象(event 对象)

    原文: http://www.cnblogs.com/songyaqi/p/5204143.html <html> <head> <title> Track Mou ...

  5. JQuery之操作array

    1:split 函数将字符串按某个字符分割,将分割后的结果存入字符串数组中 function SplitUsersInformation(users) { var usersArray = users ...

  6. 《天龙八部》及Ogre3D模型的3ds max导入插件(源码公布)

    測试UE4项目.苦于没有像样的模型和动画资源,所以想到把<天龙八部>等网游的资源导出来用. 于是做了个max导入插件. 效果还是不错的. 效果图: 上图是<斗破苍穹>的游戏资源 ...

  7. POJ 题目2761 Feed the dogs(主席树||划分树)

    Feed the dogs Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 16860   Accepted: 5273 De ...

  8. 数据挖掘算法学习(八)Adaboost算法

    本文不定期更新.原创文章,转载请附上链接http://blog.csdn.net/iemyxie/article/details/40423907 谢谢 Adaboost是一种迭代算法,其核心思想是针 ...

  9. java中不能使用小数点(.)来作为分隔符

    split()括号里是一个String的参数,所以一定要符合这种:split(".")形式,即点'.'要用双引号""括起来"."在java中 ...

  10. Expressions-->Member lookup

    7.4 Member lookup 在word文档的第140页 A member lookup is the process whereby凭借:通过…:借以:与…一致 the meaning of ...