映射与元组
1. 哈希表更笼统地说是映射,它是最灵活的数据结构之一。
2. 映射是键/值对偶集合。
3. Scala有一个通用的叫法:元组(n个对象的聚集,且对象的类型可以不一样); 对偶是n=2的元组。
一 构造映射
val scores=Map("Alice"->10)
val scores=scala.collection.mutable.Map("Alice"->10)
val scores =Map(("Alice",10))
val scores=scala.collection.mutable.Map(("Alice",10))
val scores=scala.collection.mutable.Map[String, Int]() //构造空的映射
scala >("Alice"->10)
res0: (String, Int)=("Alice",10)
映射这种数据结构是一种将键映射到值的函数,函数一般用于计算值,而映射只是做查询。
二 获取映射中的值
val aliceScore=scores("Alice")//查找Alice这个键对应的值,类似于Java中scores.get("Alice")。
如果映射不包含"Alice"则抛出异常
检查映射中是否有某个指定的键,可以使用contains方法
val aliceScore=if (scores.contains("Alice")) scores("Alice") else 0
也有这样的快捷方法
val aliceScore=scores.getOrElse("Alice",0) //如果映射包含键"Alice",返回对应的值,否则返回0
scores.get("Alice")返回一个Option对象,要么是Some(10),要么是None
对于不可变映射,可以设置不存在键的的默认值,或计算默认值得函数
val scores1=scores.withDefaultValue(0)
val zeldaScore1=scores1.get("Zelda")//将交出0,以为zelda不存在
val scores2=scores.withDefault(_.length)
val zeldaScore2=scores2.get("Zelda")//将交出5,对不存在的这个键应用length函数得到的结果