Scala 映射和元组

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  // 只返回部分
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值