Scala 映射和元组

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处! https://blog.csdn.net/WenWu_Both/article/details/78040553

1. 构建映射

val scores = Map("Alice" ->10, "Bob" -> 3, "Clindy" ->8)

上述代码构建的Map,其值不能被改变,构建可变映射,则用:

val scores = scala.collection.mutable.Map"Alice" ->10, "Bob" -> 3, "Clindy" ->8)

也可用以下方式定义映射:

var scores = Map(("Alice", 10), ("Bob", 3), ("Cindy", 8))

2.获取映射中的值

val bobsScore = scores("Bob")
// 类似于Java中的scores.get("Bob")

// 检查映射中是否包含某键值,可用contions方法
scores.contions("Bob")
// return True

val bobsScore = scores.getOrElse("Bob", 0)
// 如果映射包含键"Bob",返回对应的值;否则,返回0

3.更新映射中的值

scores("Bob") = 10 // scores必须为可变映射
scores("Fred") = 7 //增加新的键并赋值

// 可用+=操作来添加多个关系(不可变映射也可以)
scores += ("Bob" -> 10, "Fred" -> 7)

// 移除某个键,可用-=
score -= "Alice"

// 虽然不能更新不可变映射,但可是新建不可变映射的方法实现更新(曲线救国)
var newScores = scores +  ("Bob" -> 10, "Fred" -> 7) // 更新过的新映射
// newScores映射包含了与scores相同的映射关系,此外"Bob"被更新,"Fred"被添加进来

除了把结果作为新值保存外,也可以直接更新var变量:

var scores = ...
scores = scores + ("Bob" -> 10, "Fred" -> 7)

4.迭代映射

for ((key, value) <- Map)
// 获取映射键集合
scores.keySet
// 获取映射值,return Iterable
scores.values

5.元组

映射是键/值对偶的集合。对偶是元组(tuple)的最简单形态——元组是不同类型的值的聚集。

val t = (1, 3.14, "Fred")
// 可以用_1,_2,_3访问其组元
val second = t._2 // 将second设为3.14,其中t._2也可写为t _2(.替换为空格)

val (first, second, third) = t // 将first设为1,second设为3.14,third设为"Fred"

val (first, second, _) = t  // 只返回部分

猜你喜欢

转载自blog.csdn.net/WenWu_Both/article/details/78040553