映射是键值对偶的集合,映射只做查询。
构造一个不可变的Map[String, Int]。
val scores = Map("Alice" -> 10, "Aaron" -> 20, "Bob" -> 13) // 这两种方法等价
val scores = Map(("Alice", 10), ("Aaron", 20), ("Bob", 13))
val scores = scala.collection.mutable.Map("Alice" -> 10, "Aaron" -> 20, "Bob" -> 13)
// chapter01 中提到如果没有初始化是要用new函数的
val scores = new scala.collection.mutable.HashMap[String, Int]
val Bobscore = scores("Bob") // 获取“Bob"对应的值
val bobsocre = if (scores.contains("BoB")) scores("Bob") else 0
val bobsocre = scores.getOrElse("Bob", 0) // 与上面的第二条语句等价
socres("Bob") = 10 // 更新键“Bob”值
scores("Fred") = 7 // 添加新键值对
scores += ("Bob" -> 10, "Fred" -> 7) // +=可以添加多个
socres -= "Alice" // 移除某个键值对
val newScores = scores + ("Bob" -> , "Fred" -> 7)
var scores = Map("Alice" -> 10, "Aaron" -> 20, "Bob" -> 13)
scores = scores + ("Bob" -> 13, "Fred" -> 7)
scores = scores - "Alice" // 移除某个键值对
for ((k, v) <- 映射)
就可以遍历所有键值对。若只需访问键或值,用values
和keySet
方法。 for ((k, v) <- scores) println(k + v)
for (k <- scores.keySet) println(k)
for (v <- scores.values) println(v)
val scores = scala.collection.immutable.SortedMap("Alice" -> 10, "Aaron" -> 20, "Bob" -> 13)
元组(tuple ['tjup(ə)l]
)是不同类型的值的聚集,映射是键值对偶的集合,对偶是元组的最简单形态。
访问元组的组元,用_1、_2、_3
方法,元组下表是从1开始。
val t = (1, 2.2323, "Bob")
val second = t._2
val second = t _2//点也可以用空格来表示
_
表示。 val (first, second, third) = t
val (first, second, _) = t
zip
操作,toMap
方法将对偶转成映射。 val name = Array("Bob", "Fred")
val scores = Array(2, 4)
val pairs = name.zip(counts) // 得到元组
val score = pairs.toMap // 转成映射(哈希表)
【待续】
内容来源于网络,如有侵权,请联系作者删除!