Map & Tuple
一、映射(Map)
1.1 构造Map
1 | // 初始化一个空 map |
采用上面方式得到的都是不可变 Map(immutable map),想要得到可变 Map(mutable map),则需要使用:
1 | val scores04 = scala.collection.mutable.Map("hadoop" -> 10, "spark" -> 20, "storm" -> 30) |
1.2 获取值
1 | object ScalaApp extends App { |
1.3 新增/修改/删除值
可变 Map 允许进行新增、修改、删除等操作。
1 | object ScalaApp extends App { |
不可变 Map 不允许进行新增、修改、删除等操作,但是允许由不可变 Map 产生新的 Map。
1 | object ScalaApp extends App { |
1.4 遍历Map
1 | object ScalaApp extends App { |
1.5 yield关键字
可以使用 yield
关键字从现有 Map 产生新的 Map。
1 | object ScalaApp extends App { |
1.6 其他Map结构
在使用 Map 时候,如果不指定,默认使用的是 HashMap,如果想要使用 TreeMap
或者 LinkedHashMap
,则需要显式的指定。
1 | object ScalaApp extends App { |
1.7 可选方法
1 | object ScalaApp extends App { |
1.8 与Java互操作
1 | import java.util |
二、元组(Tuple)
元组与数组类似,但是数组中所有的元素必须是同一种类型,而元组则可以包含不同类型的元素。
1 | scala> val tuple=(1,3.24f,"scala") |
2.1 模式匹配
可以通过模式匹配来获取元组中的值并赋予对应的变量:
1 | scala> val (a,b,c)=tuple |
如果某些位置不需要赋值,则可以使用下划线代替:
1 | scala> val (a,_,_)=tuple |
2.2 zip方法
1 | object ScalaApp extends App { |
参考资料
- Martin Odersky . Scala 编程 (第 3 版)[M] . 电子工业出版社 . 2018-1-1
- 凯.S.霍斯特曼 . 快学 Scala(第 2 版)[M] . 电子工业出版社 . 2017-7