创建Map

// 创建一个不可变的Map

val ages = Map("Leo" -> 30, "Jen" -> 25, "Jack" -> 23)

ages("Leo") = 31

// 创建一个可变的Map

val ages = scala.collection.mutable.Map("Leo" -> 30, "Jen" -> 25, "Jack" -> 23)

ages("Leo") = 31

// 使用另外一种方式定义Map元素

val ages = Map(("Leo", 30), ("Jen", 25), ("Jack", 23))

// 创建一个空的HashMap

val ages = new scala.collection.mutable.HashMap[String, Int]

访问Map的元素

// 获取指定key对应的value,如果key不存在,会报错

val leoAge = ages("Leo")

val leoAge = ages("leo")

// 使用contains函数检查key是否存在

val leoAge = if (ages.contains("leo")) ages("leo") else 0

// getOrElse函数

val leoAge = ages.getOrElse("leo", 0)

修改Map的元素

// 更新Map的元素

ages("Leo") = 31

// 增加多个元素

ages += ("Mike" -> 35, "Tom" -> 40)

// 移除元素

ages -= "Mike"

// 更新不可变的map

val ages2 = ages + ("Mike" -> 36, "Tom" -> 40)

// 移除不可变map的元素

val ages3 = ages - "Tom"

遍历Map

// 遍历map的entrySet

for ((key, value) <- ages) println(key + " " + value)

// 遍历map的key

for (key <- ages.keySet) println(key)

// 遍历map的value

for (value <- ages.values) println(value)

// 生成新map,反转key和value

for ((key, value) <- ages) yield (value, key)

SortedMap和LinkedHashMap

// SortedMap可以自动对Map的key的排序

val ages = scala.collection.immutable.SortedMap("leo" -> 30, "alice" -> 15, "jen" -> 25)

// LinkedHashMap可以记住插入entry的顺序

val ages = new scala.collection.mutable.LinkedHashMap[String, Int]

ages("leo") = 30

ages("alice") = 15

ages("jen") = 25

Map的元素类型—Tuple

// 简单Tuple

val t = ("leo", 30)

// 访问Tuple

t._1

// zip操作

val names = Array("leo", "jack", "mike")

val ages = Array(30, 24, 26)

val nameAges = names.zip(ages)

for ((name, age) <- nameAges) println(name + ": " + age)

最新文章

  1. wpf 仿QQ图片查看器
  2. led灯的翻转函数
  3. basket.js 源码分析
  4. OC面向对象多态笔记
  5. c语言中文件的操作
  6. SDC(6)&ndash;I/O约束
  7. 适用于 PHP 开发人员的 Python 基础知识
  8. java中不常见的keyword:strictfp,transient
  9. (大数据工程师学习路径)第二步 Vim编辑器----Vim快速入门
  10. Oracle Data Provider for .NET now on NuGet
  11. C#换行 System.Environment.NewLine。
  12. 【java.sql.SQLException: Before start of result set】
  13. Windows Essentials Movie Maker 安装失败报错 ——问题解决
  14. torchvision.datasets.ImageFolder数据加载
  15. netty4初步使用
  16. 微信小程序开发工具常用快捷键
  17. C语言typeof详解
  18. 连接数据库-stone
  19. spring boot application.properties基本配置
  20. 纯CSS序列号

热门文章

  1. Qt 操作QDomDocument对象修改节点
  2. iview3 版本 升级
  3. windows下安装node【转】
  4. PLSQL流函数代码 540页 【我】
  5. ros 学习 array 的添加
  6. 转 mysql awr 报告
  7. Linux的桌面虚拟化技术KVM(三)——KVM虚拟机克隆和快照
  8. python web开发Django连接mysql
  9. didMoveToSuperview方法认识和使用
  10. 【Leetcode_easy】832. Flipping an Image