zoukankan      html  css  js  c++  java
  • 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(_ + _)

      

  • 相关阅读:
    《Asp.Net Forums2.0深入分析》之 Asp.Net Forums是如何实现代码分离和换皮肤的
    Community Server专题五:IHttpHandlerFactory
    自定义 HttpModule 示例
    动态加入控件的方法
    JS应用DOM入门:DOM的对象属性
    JS应用DOM入门:简单文档DOM结构分析
    httpmodule专题(2)
    Java 算法之快速排序
    HTML与.jsp的融合
    Exception
  • 原文地址:https://www.cnblogs.com/haisongvip/p/9551067.html
Copyright © 2011-2022 走看看