Scala Map & Tuple

转载:Map & Tuple

1. 映射(Map)

1.1 构造Map

// 初始化一个空 map
val scores01 = new HashMap[String, Int]

// 从指定的值初始化 Map(方式一)
val scores02 = Map("hadoop" -> 10, "spark" -> 20, "storm" -> 30)

// 从指定的值初始化 Map(方式二)
val scores03 = Map(("hadoop", 10), ("spark", 20), ("storm", 30))

采用上面方式得到的都是不可变 Map(immutable map),想要得到可变 Map(mutable map),则需要使用:

val scores04 = scala.collection.mutable.Map("hadoop" -> 10, "spark" -> 20, "storm" -> 30)

1.2 获取值

object ScalaApp extends App {

  val scores = Map("hadoop" -> 10, "spark" -> 20, "storm" -> 30)

  // 1.获取指定 key 对应的值
  println(scores("hadoop"))

  // 2. 如果对应的值不存在则使用默认值
  println(scores.getOrElse("hadoop01", 100))
}

1.3 新增/修改/删除值

可变 Map 允许进行新增、修改、删除等操作。

不可变 Map 不允许进行新增、修改、删除等操作,但是允许由不可变 Map 产生新的 Map。

1.4 遍历Map

1.5 yield关键字

可以使用 yield 关键字从现有 Map 产生新的 Map。

1.6 其他Map结构

在使用 Map 时候,如果不指定,默认使用的是 HashMap,如果想要使用 TreeMap 或者 LinkedHashMap,则需要显式的指定。

1.7 可选方法

1.8 与Java互操作

2. 元组(Tuple)

元组与数组类似,但是数组中所有的元素必须是同一种类型,而元组则可以包含不同类型的元素。

2.1 模式匹配

可以通过模式匹配来获取元组中的值并赋予对应的变量:

如果某些位置不需要赋值,则可以使用下划线代替:

2.2 zip方法

3. 参考资料

  1. Martin Odersky . Scala 编程 (第 3 版)[M] . 电子工业出版社 . 2018-1-1

  2. 凯.S.霍斯特曼 . 快学 Scala(第 2 版)[M] . 电子工业出版社 . 2017-7

最后更新于

这有帮助吗?