快学Scala(4) 映射和元组

来源:互联网 发布:剑三怎么下载捏脸数据 编辑:程序博客网 时间:2024/06/06 06:48

1. 构建映射

// 不变Map的构建// 如果使用->则不用小括号// 如果使用("Irving",1)会报错val scores = Map("Irving" -> 100, "Emma" -> 99)val scores = Map( ("Irving",100), ("Emma",99) )// 可变映射val scores = scala.collection.mutable.Map("Irving" -> 100)val sources = new scala.collection.mutable.HashMap[String, Int]// 排序映射val scores = scala.collection.immutable.SortedMap("Alice" -> 10)

2. 获取映射的值

val bobsScore = scores("Bob")val bobsScore = if(scores.contains("Bob")) scores("Bob") else 0val bobsScore = scores.getOrElse("Bob",0)

3. 更新映射中的值

// 对于可变映射,可以进行以下修改// 更新某个key对应的value值scores("Bob") = 10// 添加多个关系// 如果添加的关系之前就已经存在,就相当于更新scores += ("Bob" -> 10, "Fred" -> 100)// 移除某个对应关系// 如果要删除的Key不存在,也没有关系scores -= "Bob"scores -= ("Bob", "Alice")

4. 迭代映射

// 同时迭代key与valuefor( (k, v) <- scores )// 迭代keyfor( k <- scores.keySet )// 迭代valuefor(v <- scores.value)// 映射反转for((k, v) <- scores) yield (v, k)

5. 使用Java中的类型

//首先引用以下语句import scala.collection.JavaConversions.mapAsScalaMap// 然后就可以使用Java类型val scores: scala.collection.mutable.Map[String, Int] = new java.util.TreeMap[String, Int]
0 0