我有以下的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
的元素)。
看起來好像只有一個堆棧映射到所有密鑰。我想要每個鍵的堆棧。