Scala Iterable的“toMap”方法返回什么样的Map?

时间:2011-09-21 22:21:28

标签: scala

Scala Iterable有一个toMap方法,它返回一张地图。这张地图支持的是什么?它的性能特征是什么?

有没有办法指定toMap应该返回HashMap

1 个答案:

答案 0 :(得分:13)

它返回immutable.HashMap,实际上是immutable hash array mapped trie。该数据结构本质上是多级散列表和trie之间的混合。对于所有操作,哈希数组映射trie的最坏情况复杂度为O(log n),尽管具有非常低的常数因子 - 哈希数组映射的尝试非常浅,并且通常只有少数间接。您可以阅读有关性能特征here的更多信息,或运行几个微控制器。在大多数情况下,性能是可以接受的。

toMap始终返回哈希特里结构。如果你想要一个可变的哈希表,那么这样做:

import collection._
mutable.HashMap() ++= xs

而不是:

xs.toMap