多键查找数据结构

时间:2011-06-01 21:39:16

标签: data-structures dictionary key lookup

我需要一种有效的方法来通过3个不同的键中的任何一个来查找用户。例如,通过 id 用户名别名

基本概念是一种数据结构,您可以使用3种不同类型的键中的任何一种来查找值:

  1. myDataStructure.lookupByName(name) -> User

  2. myDataStructure.lookupById(id) -> User

  3. myDataStructure.lookupByAlias(alias) -> User

  4. 我能想到的唯一直接方法是使用 3个单独的词典,并使用与提供的键类型相对应的词典。

    有更有效的方法吗?

2 个答案:

答案 0 :(得分:0)

如果您知道密钥集(名称,ID和别名)是不同的,则可以将它们全部放入单个表中。否则,你需要你注意到的三个单独的表。

答案 1 :(得分:0)

这也可以帮到你。你可以将它扩展到多个键 http://www.codeproject.com/KB/recipes/multikey-dictionary.aspx