Я слышал, что коллекции .NET System.Collections.Immutable
реализованы в виде сбалансированных двоичных деревьев, чтобы удовлетворить их ограничениям неизменяемости, даже коллекции, которые традиционно моделируют хеш-таблицы, такие как Dictionary
, используя интегральное значение GetHashCode
как ключ сортировки.Следует ли предпочесть ImmutableDictionary или ImmutableSortedDictionary?
Если у меня есть тип, для которого он является дешевым, чтобы создать хэш-код, и который является дешевым для сравнения (например string
или int
), и я не заботиться о отсортированных-Несс моей коллекции, будет имеет смысл предпочесть ImmutableSortedDictionary
, потому что базовая структура данных сортируется в любом случае?
* Если у меня есть тип, для которого дешево создавать хеш-код, и для которого дешево сравнивать (например, string или int), и я не забочусь о сортировке моей коллекции. * Я думаю, вы ответили сами. Будь проще. С другой точки зрения программистов, я бы смутился, чтобы прочитать код и узнать, что сортировка сортированного словаря бесполезна, и я задаюсь вопросом, почему это было использовано в первую очередь. –
@Yuval: Учитывая, что структура данных является деревом AVL, IMHO имитирует интерфейс хеш-таблицы сверху, менее прост. –
В какой структуре данных вы говорите? –