我有以下的HashMap,其中每个元素都应该映射到堆栈:斯卡拉哈希只有一个所有键堆栈
var pos = new HashMap[Int, Stack[Int]] withDefaultValue Stack.empty[Int]
for(i <- a.length - 1 to 0 by -1) {
pos(a(i)).push(i)
}
如果a
会有元素{4, 6, 6, 4, 6, 6}
, 如果我添加上面的代码之后的下列行:
println("pos(0) is " + pos(0))
println("pos(4) is " + pos(4))
的输出将是:
pos(0) is Stack(0, 1, 2, 3, 4, 5)
pos(4) is Stack(0, 1, 2, 3, 4, 5)
这是怎么发生的? 我不想将元素添加到pos(0)
,但仅限于pos(4)
和pos(6)
(a
的元素)。
看起来好像只有一个堆栈映射到所有密钥。我想要每个键的堆栈。