Scala学习 -- 集合 Map
时间:2019-10-22
本文章向大家介绍Scala学习 -- 集合 Map,主要包括Scala学习 -- 集合 Map使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Scala的集合类Map,跟集(Set) 类似,Scala提供了Map的可变和不可变的版本,用类的继承关系来区分。在 scala.collection包里面有一个基础的 Map 特质,还有两个子特质,都叫Map,可变的那个位于 scala.collection.mutable,而不可变的那个位于 scala.collection.immutable。
创建一个 Map:
1、scala> var D: Map[Char, List[String]] = Map() D: Map[Char,List[String]] = Map() 2、scala> import scala.collection.mutable import scala.collection.mutable scala> val treasureMap = mutable.Map[Int, List[String]]() treasureMap: scala.collection.mutable.Map[Int,List[String]] = Map()
通过 -> 和 += 的方法向 Map 里面添加键值对(key/value pair):
scala> list res108: List[String] = List(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday) scala> treasureMap += (1 -> list) res107: treasureMap.type = Map(1 -> List(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday))
通过 -= 的方法将 Map 中对应的元素删除:
scala> D('a') res114: List[String] = List(a, b, c) scala> D -= ('a') scala> D res116: Map[Char,List[String]] = Map()
获得 Map 中 key 对应的value:
scala> treasureMap res109: scala.collection.mutable.Map[Int,List[String]] = Map(1 -> List(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday)) scala> treasureMap(1) res110: List[String] = List(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday)
如果你更倾向于使用不可变的映射,则不需要任何引入,因为默认的映射就是不可变的
scala> val romanNumeral = Map(1 -> "A", 2 -> "B", 3 -> "C", 4 -> "D", 5 -> "E") romanNumeral: scala.collection.immutable.Map[Int,String] = Map(5 -> E, 1 -> A, 2 -> B, 3 -> C, 4 -> D) scala> romanNumeral(2) res0: String = B scala> romanNumeral += (6 -> "F") <console>:26: error: value += is not a member of scala.collection.immutable.Map[Int,String] Expression does not convert to assignment because receiver is not assignable. romanNumeral += (6 -> "F") ^
Scala的 Map中 如果 key 相同的话,在做 += 操作的时候 key 所对应的 value 会被覆盖成新的元素
scala> D res3: Map[Char,List[String]] = Map() scala> D += ('a' -> a); scala> D res5: Map[Char,List[String]] = Map(a -> List(a, b, c)) scala> D += ('a' -> list); scala> D res7: Map[Char,List[String]] = Map(a -> List(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday))
原文地址:https://www.cnblogs.com/Lyh1997/p/11720588.html
- 外部表的导入导出问题 (41天)
- 当我们和计算机交互时,它看到的是什么?
- 一条sql语句“导致”的数据库宕机问题及分析 (38天)
- rman数据备份恢复学习笔记(49天)
- 虚拟专用数据库VPD应用 (48天)
- 关于创建视图的问题(48天)
- 性能调优之redo切换频率(47天)
- 关于oracle中session跟踪的总结(56天)
- oracle中关于小数中0的格式化(55天)
- 关于trigger过滤最大值的问题(54天)
- oracle共享服务器配置汇总(53天)
- 关于drop user的cascade选项解惑(52天)
- ORACLE数据文件名导致的奇怪问题 (51天)
- linux下挂载新硬盘和分区的步骤 (50天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php基于Redis消息队列实现的消息推送的办法
- tp5框架无刷新分页实现方法分析
- PHP与SQL语句写一句话木马总结
- golang实现php里的serialize()和unserialize()序列和反序列办法详解
- php和html的区别点详细总结
- 详解在YII2框架中使用UEditor编辑器发布文章
- 在Laravel的Model层做数据缓存的实现
- Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
- php连接mysql数据库最简单的实现方法
- 解决laravel id非自增 模型取回为0 的问题
- PHP7.0连接DB操作实例分析【基于mysqli】
- Laravel获取当前请求的控制器和方法以及中间件的例子
- laravel中数据显示方法(默认值和下拉option默认选中)
- laravel请求参数校验方法
- ThinkPHP 5.x远程命令执行漏洞复现