scala map + =五对运算符

时间:2015-07-13 18:16:48

标签: scala append operators ordered-map

我遇到将对添加到现有地图的问题。一旦我到达第五对地图,地图重新排序。订单是正确的4对,但一旦添加第5,它就会自行转移。请参阅下面的示例(假设我一次构建了一对4对Map。):

<a>

添加的第五个元素跳到了Map的前面,并将其他元素移动到周围。有没有办法保持元素的顺序(1,2,3,4,5)?

由于

1 个答案:

答案 0 :(得分:3)

默认情况下,Scala的HashMap使用"a1" -> 1

来自http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html

  

此课程不保证地图的顺序;特别是,它不保证订单会随着时间的推移保持不变

因此,地图实际上不是包含hash("a1") -> 1的表格,而是包含LinkedHashMap的表格。地图根据键的哈希值而非您放入键中的键重新排列键。

根据评论中的建议,使用ListMap或{{1}}: Scala Map implementation keeping entries in insertion order?

PS:您可能有兴趣阅读本文:http://howtodoinjava.com/2012/10/09/how-hashmap-works-in-java/