Scala Iterable有一个toMap
方法,它返回一张地图。这张地图支持的是什么?它的性能特征是什么?
有没有办法指定toMap
应该返回HashMap
?
答案 0 :(得分:13)
它返回immutable.HashMap
,实际上是immutable hash array mapped trie。该数据结构本质上是多级散列表和trie之间的混合。对于所有操作,哈希数组映射trie的最坏情况复杂度为O(log n)
,尽管具有非常低的常数因子 - 哈希数组映射的尝试非常浅,并且通常只有少数间接。您可以阅读有关性能特征here的更多信息,或运行几个微控制器。在大多数情况下,性能是可以接受的。
toMap
始终返回哈希特里结构。如果你想要一个可变的哈希表,那么这样做:
import collection._
mutable.HashMap() ++= xs
而不是:
xs.toMap