我正在尝试编写一个自定义哈希表,允许存储多个值。
我们是按照以下方式实现的:
- 创建一个大小为 Integer_MAX(自定义链接列表)的链接列表数组。
- 将值(int)插入到编号为键号的链接列表中。
这意味着结构如下:
value1 -> value6
NULL
Null
value3 -> value7
Null
...
...(until Int-Max)
现在,由于我们将存储近5亿个键值对,至少会浪费1.6亿个链接列表。
现在,根据我的工作场所的建议,我正在尝试构建具有以下结构的哈希表:
1 -> value1 -> value6
0
0
1 -> value3 -> value7 // here 0/1 bit defines linked lists exits or not
0
...
...(until Int-Max)
有人能帮我看看是否可能构建这样的结构吗?
编辑:
- 我们为什么要这样做可以在这里找到。
- Louis Wasserman编写的当前代码可以在这里找到。
CustomHashMap.AbstractNode
,其中包括两个子类 -CustomHashMap.EmptyNode
和CustomHashMap.NotEmptyNode
。CustomHashMap.EmptyNode
应该是一个没有数据的单例。这样,您将有额外的实例检查,但可以减少内存使用量。如果我理解错误或者再次没有理解您的问题,请纠正我。 - gkuzmin