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

Scala 学习笔记之Map与Tuple

[String,Int] = Map(Alice -> 90, Kim -> 89, Bob -> 98) 上面构造了一个不可变的Map[String, Int],其值也不能被改变.如果想要一个可变映射...更新映射中的值 在可变映射中,可以更新某个映射的值,也可以添加一个新的键值对: scala> val scores = scala.collection.mutable.Map("Alice" ->...排序映射 在操作映射时,我们需要选定一个映射(哈希表还是平衡树).默认情况下,scala给的是哈希表.有时候我们想对键进行一个排序,顺序访问键,这就需要一个树形映射: scala> val scores...与Java互操作 如果你有一个Java映射,想要转换为Scala映射,以便便捷的使用Scala映射的方法,只需要增加如下语句: import scala.collection.JavaConversions.mapAsScalaMap...= Bob 通常,使用模式匹配的方式来获取元组的组元: scala> val (id, score, name) = bobScore // 将变量id赋值为1,变量score赋值为98.5,变量name

63530

(数据科学学习手札45)Scala基础知识

2.2 Scala变量声明   和java类似,Scala中的变量需要在创建时进行声明,有var和val两种声明方式,其中val类型变量定义后不可以重新赋值,而var类型变量声明之后可以自由赋新值,下面在...[Int] = ArrayBuffer(0, 1, 4, 5) 2.4.2 Map映射   与Python中的字典相似,Scala中的映射就是键值对的集合Map,默认情况下Scala中同样是使用不可变的映射...1.定义映射   我们用->连接键值,左边为键,右边为值,键唯一: scala> var DemoMap = Map("Scala"->1,"Python"->2,"R"->3) DemoMap: scala.collection.immutable.Map...6.为可变映射更新或新增键值对 //更新已有的可变Map映射中指定键的值,若不存在此键则创造新键值对 scala> DemoMap("Julia") = 100 scala> DemoMap res1...,Scala中的列表被设计来存放各种类型的元素,且Scala中的列表类型有三种模式,一种是当列表内部元素类型统一时,如List[Int],一种是当列表中同时包含几种不同类型元素时,为List[Any],

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

    带你快速掌握Scala操作———(3)

    的方法区中  可以将函数对象赋值给一个变量,在运行时,它是加载到JVM的堆内存中  函数是一个对象,继承自FunctionN,函数对象有apply,curried,toString,tupled这些方法...List具备以下性质:  可以保存重复的值  有先后顺序 在scala中,也有两种列表,一种是不可变列表、另一种是可变列表 定义 不可变列表就是列表的元素、长度都是不可变的。...不保证插入顺序 scala中的集也分为两种,一种是不可变集,另一种是可变集。...它是由键值对组成的集合。在scala中,Map也分为不可变Map和可变Map。...不可变Map 语法 val/var map = Map(键->值, 键->值, 键->值...) // 推荐,可读性更好 val/var map = Map((键, 值), (键, 值), (键, 值)

    2K30

    机器学习:如何快速从Python栈过渡到Scala栈

    fib(f-1) println(fib(1),fib(2),fib(3),fib(4),fib(5)) // 在scala中,函数也是一种变量类型,因此也同样可以赋值为某个常量或者当作另一个函数的参数...(2),map1.getOrElse(5,"default")) // Map默认是不可变的Map,也可以引入mutable包中的可变的Map import scala.collection.mutable...+= (3 -> 3) 报错,因为原始Map不可变,+=会创建一个新的,但是map1又是常量 mmap += (3->3,4->4) println(mmap) 字典的差异: 有两种创建语法,个人喜欢第二种...,更短一些; Map不可变指的是它的元素个数、元素内容都不能变; 如果用var来定义一个不可变Map,那么看似可变,实际上是创建了一个新的Map对象; 元组 val tuple = (1,1.2,"abc...; 外部数据 这里有一个很大的问题,如果你的数据中的列名有中文,那么建议全部重命名为英文,否在在构建SQL表达式等地方会报错,奇怪的是这部分在Python中倒是正常的,这个坑也填了好久。。。。

    1.8K31

    分布式机器学习:如何快速从Python栈过渡到Scala栈

    中,函数也是一种变量类型,因此也同样可以赋值为某个常量或者当作另一个函数的参数 val f = (x:Int) => x*10 // 简易函数就是lambda表达式 println(f) def ff(...def定义的方法,甚至不能直接print 上面介绍的其实都是函数而不是方法: 定义一个变量,将一个函数赋值给它; 将一个函数变量作为入参传入到另一个函数中; 这里对于函数的理解可以想象数学中的函数,数学中的函数嵌套...(2),map1.getOrElse(5,"default")) // Map默认是不可变的Map,也可以引入mutable包中的可变的Map import scala.collection.mutable...+= (3 -> 3) 报错,因为原始Map不可变,+=会创建一个新的,但是map1又是常量 mmap += (3->3,4->4) println(mmap) 字典的差异: 有两种创建语法,个人喜欢第二种...,更短一些; Map不可变指的是它的元素个数、元素内容都不能变; 如果用var来定义一个不可变Map,那么看似可变,实际上是创建了一个新的Map对象; 元组 val tuple = (1,1.2,"abc

    1.2K20

    01.Scala:开发环境搭建、变量、判断、循环、函数、集合

    是所有类的子类,那么它可以赋值为任何类型 问题 以下代码是否有问题?...方法和函数的区别 方法是隶属于类或者对象的,在运行时,它是加载到JVM的方法区中 可以将函数对象赋值给一个变量,在运行时,它是加载到JVM的堆内存中 函数是一个对象,继承自FunctionN,函数对象有...List具备以下性质: 可以保存重复的值 有先后顺序 在scala中,也有两种列表,一种是不可变列表、另一种是可变列表 13.1 不可变列表 定义 不可变列表就是列表的元素、长度都是不可变的。...映射 Map可以称之为映射。它是由键值对组成的集合。在scala中,Map也分为不可变Map和可变Map。...15.1 不可变Map 定义 语法 val/var map = Map(键->值, 键->值, 键->值...) // 推荐,可读性更好 val/var map = Map((键, 值), (键, 值)

    4.1K20

    大数据--scala学习第一章:基础第二章:控制结构和函数第三章:数组第四章:字典和元组第五章:类第六章:对象第七章:包和引入第八章:继承第九章文件和正则表达式第十章特质:接口第十一章操作符第十二章函

    4、对于不可变的Map可以通过重新赋值进行增改:val so=scores+(“bob”->1) 删:val so=scores-“bob”。...可变序列与java中的大体类似 4、列表:在Scala中列表要么是空的要么是一个head元素加上一个tail元素而tail元素又是一个链表,我的思路是:嵌套链表,以head开始tail嵌套。...3、Scala中你也可以对表达式的类型进行匹配,如:但是不能匹配特定的泛型,如特定的Map类型 obj match { case x:Int=>x //其中x为变量,只能匹配整数并将obj赋值给...Nothing =>" " } 6、Option类型:Scala中Option[T]类型是用来处理java中null值类型的,Option有两个子类型一个为None,一个位Some[T]。...比如map的get方法在java中可能返回为null而导致出现NullPointerException异常,而Scala中返回的是一个Option[T]类型当值不存在时为None,存在时返回Some(T

    4.4K20

    曾经以为Python中的List用法足够灵活,直至我遇到了Scala…

    Scala语法的强大和奔放,以至于让我一度质疑“Python语法足够简洁”的论断。...那么,Scala中的Array有什么特别之处吗?一句话概括Scala中的Array就是:同质、数据可变、长度不可变的集合。...这里之所以强调Array中的数据可变,是因为与之对应的是List数据不可变 长度不可变:这与C和Java中的数组有一定相似之处,即一旦初始指定了Array的数据个数(即Array的length),那么后续则不能再发生改变...[Int,Int] = Map(2 -> 3, 3 -> 5) 类似于Python中的dict,Scala中的Map也可通过keys和values获取所有的键和值,且keys实际上就是一个Set,因而不会存在重复值...;而values则不受这一限制: scala> map1.keys // 获取所有键,返回结果是一个Set类型 val res23: Iterable[Int] = Set(1, 3) scala>

    87030

    Scala最基础入门教程

    (A && B) 运算结果为 true 4、赋值运算符 运算符 描述 实例 = 简单的赋值运算符,将一个表达式的值赋给一个左值 C = A + B 将 A + B 表达式结果赋值给 C += 相加后再赋值...private为私有权限,只在类的内部和伴生对象中可用。 protected为受保护权限,Scala中受保护权限比Java中更严格,同类、子类可以访问,同包无法访问。...建议:在操作集合的时候,不可变用符号,可变用方法。 不可变集合 Set、Map是Java中也有的集合。...我们发现经典的数据结构比如Queue和Stack被归属到LinearSeq(线性序列)。 大家注意Scala中的Map体系有一个SortedMap,说明Scala的Map可以支持排序。...集合 Scala中的Map和Java类似,**也是一个散列表,它存储的内容也是键值对(key-value)**映射。

    68370

    Spark2.x学习笔记:2、Scala简单例子

    ) 5050 scala> 备注:Scala在for循环中对循环变量i的赋值用了“一个范围 在scala中还有一个和上面的to关键字有类似作用的关键字until,它的不同之处在于不包括最后一个元素...这些_N数字是基于1的,而不是基于0的,因为对于拥有静态类型元组的其他语言,如Haskell和ML,从1开始是传统的设定。 2.10 Map Scala映射(Map)是一组键/值对的对象。...任何值都可以根据键来进行检索。键在映射中是唯一的,但值不一定是唯一的。映射也称为哈希表。映射有两种,不可变的和可变的。可变对象和不可变对象之间的区别在于,当对象不可变时,对象本身无法更改。...如果想同时使用可变的和不可变映射(Map),那么可以继续引用不可变映射(Map),但是可以将mutable集合引用mutable.Map。...函数与faltMap这两个函数 map函数的用法,顾名思义,将一个函数传入map中,然后利用传入的这个函数,将集合中的每个元素处理,并将处理后的结果返回。

    3.1K80

    两天了解scala

    主要还是做个笔记,总结一下scala的主要特性,为spark编程做准备 第一节 入门 balalbala一通,就是告诉你scala有多棒,是spark的开发语言,以后处理大数据很好用之类的。...第三节 Array、List Array和List的操作,也是普通得一批 第四节 Set、Map、Tuple、队列 有两种,一种是可变集合另一种是不可变集合;可变集合可以随便玩,不可变集合创建了就不能动了...,对,我是本地人,我有一百种方法写这个函数。...方法中调用(写法1) scala> println(Array(1,2,3,4).map(increase).mkString(",")) //匿名函数写法(写法2) scala>println(Array...scala> val fun2:(Double)=>Double=1+_ 另外还有闭包,好像就是在函数里定义了一个未知的变量,等什么时候要用的时候再赋值。

    64090

    2021年大数据常用语言Scala(十八):基础语法学习 Map对象

    ---- Map对象 Map可以称之为映射。它是由键值对组成的集合。在scala中,Map也分为不可变Map和可变Map。...不可变Map 定义 语法 val/var map = Map(键->值, 键->值, 键->值...) // 推荐,可读性更好 val/var map = Map((键, 值), (键, 值), (键,...示例 定义一个映射,包含以下学生姓名和年龄数据 "zhangsan", 30 "lisi", 40 获取zhangsan的年龄 参考代码 scala> val map = Map("zhangsan"-...zhangsan的年龄为20 scala> val map = Map("zhangsan"->30, "lisi"->40) map: scala.collection.mutable.Map[String...-1 新增一个学生:wangwu, 35 将lisi从可变映射中移除 参考代码 scala> val map = Map("zhangsan"->30, "lisi"->40) map: scala.collection.mutable.Map

    47940

    学习Scala: 初学者应该了解的知识

    Scala开发参照清单 这里列出在开发一个Scala工程中需要参照的资料。...不过作为初学者的我,scala极其容易导致代码的可读性比较差。 Java语言还是有其优势。...implicit conversions逻辑发现类型Int/Long不匹配, 然后在一个implicit view(可以看成一个函数pool,包含了所有的implicit functions)中找一个输入为...比如,你想在Scala的List类上,增加一个函数,而不用去修改Scala的发布包, 在Scala 2.10版以后,就可以通过implicit classes实现, 之前的版本,可以通过Pimp-my-library...Nothing是Scala中的一个Trait。基本上没有用。(我猜的) ## 和 == 对 equals 和 hashCode 在Scala中, ##方法相当于Java中的hashCode方法。

    1.1K40

    大数据之脚踏实地学16--Scala列表、元组与映射

    往期回顾 大数据之脚踏实地学15--Scala的数组操作 前言 在上一期的《大数据之脚踏实地学15--Scala的数组操作》分享中,介绍了Scala的数组相关知识,借助于Array函数可以构造定长数组(...列表 Scala中的列表与之前分享的数组有一些相似之处,例如列表中的元素也需要具有相同的数据类型、对于不可变列表而言,其长度也是固定的。...列表的增删改操作 可变列表的增 对于可变列表而言,可以借助于append方法在列表的末尾增加一个或多个元素;使用+=方法在末尾增加一个元素;使用++=方法追加另一个列表;使用insert方法在列表的指定位置增加一个元素...info.get("score")) // 返回映射的键、值、键值对 println("映射的键为:" + info.keySet) println("映射的值为:" + info.values) println...("映射的键值对为:" + info.toList) // 结果输出 info中name键对应的值:Snake info中score键对应的值:Some(88) 映射的键为:Set(name, score

    49210

    Scala语言学习笔记二

    这本书的名字叫《快学scala》,虽然是本比较久远的书,但是也算是scala入门非常经典的读物,主要是对比java和scala的语言特点写出来的,我早期做了这样一套读书笔记,由于工作的需要,要重新使用scala...构建一个不可变的映射: scala> val scores = Map(“Alice” -> 10, “Bob” -> 20, “Cindy” -> 30) 构建一个可变映射方法如下: scala> val...scores = scala.collenction.mutable.Map(“Alice” -> 10, “Bob” -> 20, “Cindy” -> 30) 也可以先构建一个空格的映射开始,但是必须指定类型参数...scala> val scores = scala.collenction.mutable.HashMap[String, Int] 4.2 映射赋值 映射赋值和增加新的映射关系操作相同 scala>...scala> scores -= “Alice" 这里要注意的是不能更新一个不可变的映射,但是可以将操作结果传给新的映射。

    71180

    Scala,一门「特立独行」的语言!

    入门 Spark 的路上很难不接触 Scala 。Scala 似乎是为 java 提供了很多『类似函数式编程』的语法糖,这里记录一下这个语言独特的地方分享给读者朋友们。 ?...这里我直接参考:scala中case的用法[1] // 一.简单匹配,值匹配: val bools = List(true, false) for (bool <- bools) { bool...Scala 中万物皆对象。 var increase = (x: Int) => x + 1 如上,函数是一等公民,可以赋值给变量。...基本数据结构 有以下概念: 不可变列表 List 与可变列表 ListBuffer 定长数组 Array 与变长数组 ArrayBuffer 不可变集合 Set 与可变集合 scala.collection.mutable.Set...映射 Map 与 可变映射 scala.collection.mutable.Map 元组 Tuple 注意事项与 Scala 奇技淫巧 使用 until 是遍历数组的好办法,by 和 _* 特殊意义

    43530
    领券