Многоключевая структура данных поиска - PullRequest
2 голосов
/ 02 июня 2011

Мне нужен эффективный способ поиска пользователя по любой из 3-х различных клавиш.Например, id , имя пользователя или псевдоним .

Основной концепцией будет структура данных, в которой можно использовать любой изразличные типы ключей для поиска значения:

  1. myDataStructure.lookupByName(name) -> User

  2. myDataStructure.lookupById(id) -> User

  3. myDataStructure.lookupByAlias(alias) -> User

Единственный непосредственный способ сделать это - иметь 3 отдельных словаря и использовать тот, который соответствует типупредоставляется ключ.

Есть ли более эффективный способ?

Ответы [ 2 ]

0 голосов
/ 02 июня 2011

Это также может помочь вам.Вы можете расширить его до более чем одного ключа http://www.codeproject.com/KB/recipes/multikey-dictionary.aspx

0 голосов
/ 02 июня 2011

Если вы знаете, что наборы ключей (имена, идентификаторы и псевдонимы) различны, вы можете поместить их все в одну таблицу.В противном случае вам понадобятся три отдельные таблицы, которые вы отметили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...