我正在尝试确定当只需要功能时用于存储键值对的数据结构
具体来说,我不需要能够删除对,也不需要遍历键/值/对。
键是整数元组,值是指针(引用,无论如何)。我只存储了几百万对(很多)对象。
目前我正在考虑使用
我倾向于哈希表(O(1)
插入/查找时间),但我想确认我的倾向。
您会推荐哪种结构(上述或其他结构)以及为什么?如果你推荐一个哈希表,我应该为每个对象创建一个单独的表,还是只创建一个表并使用对象的id作为关键元组的一部分?
答案 0 :(得分:4)
哈希表是最好的选择,因为对你来说重要的所有操作都是O(1)(因此你不必担心创建多个哈希表)。
答案 1 :(得分:1)
我是哈希表的忠实粉丝,因为它们很容易,而且几乎所有主要语言都有可用的实现。 O(1)插入/查找是一个特别好的功能。
您应该使用单个表来节省内存。众所周知,散列表在内存方面效率低下,使用单个表将有助于最小化。
答案 2 :(得分:1)
哈希表在这里很有用,我认为没有理由拥有多个表。
答案 3 :(得分:0)
大多数树具有O(n ln n)查找时间,但哈希表具有O(1)查找时间,因此这是您要使用的查找时间。它也很常见,并且通常会针对启动进行高度优化。