我试图将地图转换为元组列表,给出如下地图
Map("a"->2,"a"->4,"a"->5,"b"->6,"b"->1,"c"->3)
我想输出
List(("a",2),("a",4),("a",5),("b",6),("b",1),("c",3))
我试过了
val seq = inputMap.toList //output (a,5)(b,1)(c,3)
var list:List[(String,Int)] = Nil
for((k,v)<-inputMap){
(k,v) :: list
} //output (a,5)(b,1)(c,3)
为什么删除重复项?我没有看到其他元组有&#34; a&#34;作为关键。
答案 0 :(得分:1)
这是因为Map
不允许重复密钥:
val map = Map("a"->2,"a"->4,"a"->5,"b"->6,"b"->1,"c"->3)
println(map) // Map(a -> 5, b -> 1, c -> 3)
答案 1 :(得分:0)
问题在于[FilterOne(Order = 1), FilterTwo(Order = 2)]
,其密钥为Map
,因此您不能拥有相同密钥的两倍。这是因为Set
是字典,用于通过键访问值,因此键必须是唯一的。因此,构建器仅保留使用键Map
给出的最后一个值。
顺便说一下,"a"
已经有一个方法Map
,它完全按照您的方式执行。
答案 2 :(得分:0)
由于map具有重复键,因此在创建地图时它将删除重复的条目。
Map("a"->2,"a"->4,"a"->5,"b"->6,"b"->1,"c"->3)
它会变成,
Map(a -> 5, b -> 1, c -> 3)
所以其他操作将在短地图上执行