我听说.NET的System.Collections.Immutable集合被实现为平衡二叉树,以满足其不可变性限制,即使像Dictionary这样传统模拟哈希表的集合,也是通过使用GetHashCode的整数值作为排序关键字来实现的。
如果我有一个类型可以很容易地生成哈希码,并且比较成本很低(例如string或int),并且我不关心我的集合是否已排序,那么选择ImmutableSortedDictionary是否有意义,因为底层数据结构已经是排序的?
如果我有一个类型可以很容易地生成哈希码,并且比较成本很低(例如string或int),并且我不关心我的集合是否已排序,那么选择ImmutableSortedDictionary是否有意义,因为底层数据结构已经是排序的?
ImmutableDictionary
和ImmutableSortedDictionary
(它们都是AVL树) - Billy ONealImmutableDictionary
呢? - Yuval ItzchakovImmutableDictionary
已经被排序了。它是按照GetHashCode
的数值大小进行排序,而不是按照键类型提供的内在排序进行排序。 - Billy ONeal