首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Scala 【 11 Scala的集合体系结构 】

Scala的集合体系结构 ​ Scala 中的集合体系主要包括:Iterable、Seq、Set、Map。 ​ 其中 Iterable 是所有集合 trait 的根 trait。...Scala 中的集合是分成可变和不可变两类集合的,其中可变集合就是说,集合的元素可以动态修改,而不可变集合的元素在初始化之后,就无法修改了。...ArrayBuffer 就类似于 Java中的 ArrayList。 List ​ List 代表一个不可变的列表。 ​...Scala 的集合类的 map、flatMap、reduce、reduceLeft、foreach 等这些函数,就是高阶函数,因为可以接收其他函数作为参数。 ​..."a","girlfriend").foreach(println(_)) // zip 练习:对学生姓名和学生成绩进行关联 List("Li", "Hcy", "chy").zip(List(100

41120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Scala的函数

    1.格式     [private/protected] def 函数名(参数列表):返回值声明 = {函数体} 2.函数的返回值     1)函数体中return关键字往往可以省略掉,一旦省略掉,函数将会返回整个函数体中最后一行表达式的值..._*_} 2、函数的种类     Scala中的函数分为成员函数、本地函数(内嵌在函数内的函数)、函数值(匿名函数)、高阶函数。...scala中,如果在递归时,保证函数体的最后一行为递归调用,则称这样的递归为尾递归。scala会针对尾递归做优化处理,所以建议在写递归时写成尾递归形式。     ...另外在Spark的源码中有大量运用scala柯里化技术的情况,需要掌握好该技术才能看得懂相关的源代码。     在scala柯里化中,闭包也发挥着重要的作用。...语法介绍 下一篇:Scala中的集合类型

    1.4K40

    Scala 【 10 函数式编程 】

    函数式编程 将函数赋值给变量 ​ Scala 中的函数是一等公民,可以独立定义,独立存在,而且可以直接将函数作为值赋值给变量。...10, 12, 14, 16, 18, 20) ​ reduceLeft: 从左侧元素开始,进行 reduce 操作,即先对元素 1 和元素 2 进行处理,然后将结果与元素 3处理,再将结果与元素 4...(1 to 4).reduceLeft(_ * _) // 相当于 1 * 2 * 3 * 4 ​ sortWith: 对元素进行两两相比,进行排序。...然而,msg 只是一个局部变量,却在 getGreetingFunc 执行完之后,还可以继续存在创建的函数之中。 ​...在 Scala 中,return 用于在匿名函数中返回值给包含匿名函数的带名函数,并作为带名函数的返回值。 ​ 使用return的匿名函数,是必须给出返回类型的,否则无法通过编译。

    30710

    大数据技术之_16_Scala学习_10_使用递归的方式去思考,去编程+作业070809

    第十四章 使用递归的方式去思考,去编程14.1 基本介绍14.2 Scala 提倡函数式编程(递归思想)14.3 应用案例1-求和14.4 应用案例2-求最大值14.5 应用案例3-翻转字符串14.6...14.2 Scala 提倡函数式编程(递归思想) 编程范式 ? 14.3 应用案例1-求和 scala 中循环不建议使用 while 和 do…while,而建议使用递归。...8、实现一个函数,作用与 mkStirng 相同,提示:使用 reduceLeft 实现。 9、给定整型列表lst,(lst :\ List[Int]())(_ :: _)得到什么?...如何修改他们中的一个,以对原列表进行反向排列? 10、编写一个函数,将 Double 数组转换成二维数组。传入列数作为参数。... ((n1: Int, n2: Int) => n1 * n2)     // 1 to n reduceLeft ((n1, n2) => n1 * n2)     1 to n reduceLeft

    1.1K20

    Scala学习笔记

    void         块表达式         在scala中{}中课包含一系列表达式,块中最后一个表达式的值就是块的值     *)scala的循环         For 循环             ...来说,运行程序必须main方法中             - 对JAVA语言来说,main method在class类中                 public static void main...构造器,也就是说object内部不在method中的代码(并且只执行一次),但是object不能定义接受参数的构造器         4)注意object的构造器只会在第一次调用时执行,以后再次调用不会再执行构造器了...arr.reduce(_-_) //默认使用reduceLeft,从左到右计算             res10: Int = -23             scala> arr.reduceLeft...(_+_)             res11: Int = 25             scala> arr.reduceRight(_+_) //表示从列表尾部开始,对两两元素进行求和操作

    2.6K40

    大数据利器--Scala语言学习(高级)

    List[Any] 5) 如果希望得到一个空列表,可以使用 Nil 对象, 在 scala 包对象声明的,因此不需要引入其它包也可以使用 scala val list = List(1,2,3) println...4) 在 scala 中, 有 scala.collection.mutable.Queue 和 scala.collection.immutable.Queue , 一般来说,我们在开发中通常使用可变集合中的队列...中的 Map 和 Java 类似,也是一个散列表,它存储的内容也是键值对(key-value)映射,Scala 中不可变的 Map 是有序的,可变的 Map 是无序的。...(list.reduceLeft(sum)) } //执行相加程序 def sum(n1: Int, n2: Int): Int = { n1 + n2 } } 11、折叠–fold...2) 可以把 reduceLeft 看做简化版的 foldLeft scala object demo5 { def main(args: Array[String]): Unit = {

    2K10

    3.2 弹性分布式数据集

    (3)RDD的重要内部属性 1)分区列表。 2)计算每个分片的函数。 3)对父RDD的依赖列表。 4)对Key-Value 对数据类型RDD的分区器,控制分区策略和分区数。...5)每个数据分区的地址列表(如HDFS上的数据块的地址)。...3)输出:程序运行结束数据会输出Spark运行时空间,存储到分布式存储中(如saveAsTextFile输出到HDFS),或Scala数据或集合中(collect输出到Scala集合,count返回Scala...(7)reduce reduce函数相当于对RDD中的元素进行reduceLeft函数的操作。函数实现如下。...在RDD中,先对每个分区中的所有元素<K,V>的集合分别进行reduceLeft。每个分区形成的结果相当于一个元素<K,V>,再对这个结果集合进行reduceleft操作。

    1.1K100

    大数据技术之_16_Scala学习_08_数据结构(下)-集合操作+模式匹配

    12.4 类型匹配12.5 数组匹配12.6 列表匹配12.7 元组匹配12.8 对象匹配12.9 变量声明中的模式12.10 for表达式中的模式12.11 样例(模板)类12.12 case 语句的中置... 中,可以把一个函数直接赋给一个变量,但是不执行函数,格式:函数名 _   注意:本质上是将内存地址赋值给栈里面的变量!!!     ...化简:将二元函数引用于集合中的函数。   上面的问题当然可以使用遍历 list 方法来解决,这里我们使用 scala 的化简方式来完成。...2、Scala 中 变量声明中的模式 快速入门案例 示例代码如下: package com.atguigu.chapter12.mymatch object MatchVarDemo02 {   def...2、Scala 中 for表达式中的模式 快速入门案例 示例代码如下: package com.atguigu.chapter12.mymatch object MatchForDemo01 {

    1.7K00

    scala快速入门系列【函数式编程】

    scala可以自动来推断出来集合中每个元素参数的类型 创建函数时,可以省略其参数列表的类型 示例 有一个列表,包含以下元素1,2,3,4,请使用foreach方法遍历打印每个元素 使用类型推断简化函数定义...如果方法参数是函数,如果出现了下划线,scala编译器会自动将代码封装到一个函数中 参数列表也是由scala编译器自动处理 ---- 映射|map 集合的映射操作是将来在编写Spark/Flink...案例一 创建一个列表,包含元素1,2,3,4 对List中的每一个元素加1 参考代码 ?...案例二 创建一个列表,包含元素1,2,3,4 使用下划线来定义函数,对List中的每一个元素加1 参考代码 ?...对scala感兴趣的朋友可以持续关注哟~

    1.2K20

    Spark基础-scala学习(五、集合)

    集合 scala的集合体系结构 List LinkedList Set 集合的函数式编程 函数式编程综合案例:统计多个文本内的单词总数 scala的集合体系结构 scala中的集合体系主要包括:Iterable...ArrayBuffer就类似于java中的ArrayList List List代表一个不可变的列表 List的创建,val list = List(1,2,3,4) List有head和tail,head...循环将列表中的每个元素都乘以2 scala> val list = scala.collection.mutable.LinkedList(1,2,3,5,6) scala> var currentList...currentList.elem = currentList.elem * 2 | currentList = currentList.next | } 案例:使用while循环将列表中每隔一个元素就乘以...> lines.flatMap(_.split(" ")).map((_,1)).map(_._2).reduceLeft(_ + _) res11: Int = 21 scala> lines.flatMap

    56220

    Scala | 教程 | 学习手册 --- 常用集合

    foreach()取一个函数,对列表中每一项调用这个函数 map()取一个函数,将一个列表元素转换为另一个值或类型 reduce()取一个函数,将两个列表列表元素结合为一个元素 scala> val colors...sortBy方法指定一个函数时,它会返回一值,用来对列表中的元素排序。 对于性能方面,::, drop, take在列表前面完成,因此不存在性能损失。...collect使用一个偏函数,只对一部分元素应用 flatMap使用一个给定函数转换各个元素,将结果列表扁平化到这个列表中 map使用给定函数转换各个元素 scala> List(0, 1,...比如我们要判断列表中是否包含某个元素。逻辑是这样:如果accumulator是false,那继续判断是否包含,如果包含,更新accumulator,然后下次就不用判断。...> val answer = List(11.3, 23.5, 7.2).reduceLeft(_ + _) (2) answer: Double = 42.0 转换集合 mkString

    57820
    领券