@amoszhou
2014-05-06T16:13:19.000000Z
字数 860
阅读 1245
未分类
定义和Array类似,初始化则不需要用new,否则要用new.
val scores = Map("Alice"->80,"bob"->97,"john"->100)
val scores2= new scala.collection.mutable.HashMap[String,Int]
和Array一样,第1种是不可变的,第2种是可变的。scala的可变集合类都在scala.collection.mutable
里面。
val scores = Map(("Alice",10),("Bob",3),("john",8))
这是第3种方式,用对偶的方式创建。
也和Array一样,用()。比如
val bobScore = scores("Bob")
但是如果不包含这个key,就会抛出异常,这种情况我们碰到的频率也非常高,所以一般都这么写:
val bobScore = scores.getOrElse("Bob",0)//指定默认值
scores("Bob") = 75 //存在就更新,否则插入(前提Map是可变的)
scores += ("aa"->73,"bb"->33) //添加多个
语法和Array也类似for ((k,v) <- map)
获取keyset和value map.keySet
map.values
反转一个map。可以用for...yield语法for((k,v)<-map) yield (v,k)
元组是不同类型的值的聚集,对偶是元组最间的形式。
使用元组的好处之一就是可以讲多个值绑在一起,进行处理。最常见的就是拉链操作:zip
。
val symbols = Array("<","-",">")
val counts = Array(2,10,2)
val pairs = symols zip counts // Array(("<",2),("-",10),(">",2))
用_index访问,比如: symbols._1,symbols_2
.注意的是下标从1开始。