一、映射的重点内容:
1.映射中,前面的值称之为“键”,后面的值称之为“值”
2.映射是对偶的集合,由两个值组成,他们不一定为同一种类型。
3.通过键查询时,映射中并不包含该键,则抛出异常。
3.函数通常用来计算,而映射用来查询。
二、用法
1、创建不可变的映射:
Map("A" -> 1) //或 HashMap("A" -> 1)
2、创建可变映射
//先引入mutable包中的Map或HasMap import scala.collection.mutable.Map Map("A" -> 1) //或 import scala.collection.mutable.HashMap HashMap("A" -> 1)
3、创建空映射
//1.注意使用new关键字 //2.指定映射键值的类型 val scores = new scala.collection.mutable.HashMap[String, Int]
说明:可变的Map是特质,不能被实例化(即不能使用new创建对象)
4、创建一个映射的实际用法
val capital = Map("China" -> "beijing", "America" -> "Washington", "France" -> "Paris") val americaCapital = captial("America") //得到的结果是字符串类型的Washington
之前说过,如果通过键查询时,键不存在于该映射则抛出异常,如下:
val japanCapital = capital("Japan") //系统抛出异常
所以我们可以使用contains方法检查键是否存在,如下:
val japanCapital = if(capital.contains("Japan")) capital("Japan") else ""
或者使用getOrElse方法,如下:
val japanCapital = capital.getOrElse("Japan","")
5、可变映射的方法:
import scala.collection.mutable.Map val scores = Map("Alice" -> 1) //更新Alice键对应的值 scores("Alice") = 2 //增加新的键值对 scores("Bob") = 3 //将其他的Map键值对映射关系合并到本Map之后 val newScores = Map("Fred" -> 4) scores += newScores //或 scores += ("Fred" -> 4) //删除某个键值对 scores -= "Alice"
6、迭代:
for((k,v) <- 映射) 处理 k,v
//打印映射 val myMap = Map("A" -> 1, "B" -> 2, "C" -> 3) for((k,v) <- myMap) println(k+" "+v) //只打印键 for(k <- myMap.keySet) println(k) //只打印值 for(v <- myMap.values) println(v) //反转映射 for((k,v) <- myMap) yield (v,k)
转载于:https://blog.51cto.com/heyijx2/1367687