如何在Scala Map中反转键和值
映射是一种将数据存储为键:值对的数据结构。
语法:
Map(key->value, key->value)
反转映射中的键和值
在这里,我们将看到一个在ScalaMap中反转键和值的程序。我们将值反转为键,将键反转为对。
因此,在此之前,我们必须确保初始映射的键和值都唯一以避免错误。
程序:
object myObject {
def main(args:Array[String]) {
val bikes = Map(1->"S1000RR" , 2->"R1", 3->"F4" )
println("Inital map: " + bikes)
val reverse = for ((a, b) <- bikes) yield (b, a)
println("Reversed map: " + reverse)
}
}输出结果
Inital map: Map(1 -> S1000RR, 2 -> R1, 3 -> F4) Reversed map: Map(S1000RR -> 1, R1 -> 2, F4 -> 3)
说明:
在这里,我们声明了一个映射,然后反转了它的值。在反向变量中,我们插入了与原始映射的每一对相反的值,yield方法采用(key,value)对,并将(value,key)对返回到反向映射。
如果值不是唯一的怎么办?
有一点需要考虑的是,两个键值对应该是唯一的。但是,如果我们在值中插入重复项,则在反向映射中将删除该对。
程序:
object myObject {
def main(args:Array[String]) {
val bikes = Map(1->"S1000RR" , 2->"R1", 3->"F4", 4->"S1000RR" )
println("Inital map: " + bikes)
val reverse = for ((a, b) <- bikes) yield (b, a)
println("Reversed map: " + reverse)
}
}输出结果
Inital map: Map(1 -> S1000RR, 2 -> R1, 3 -> F4, 4 -> S1000RR) Reversed map: Map(S1000RR -> 4, R1 -> 2, F4 -> 3)
因此,代码可以正常运行,但是反向键将删除对4->S100RR以使反向键的所有键都唯一。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下