每当我想要使用像Java中的Set或Map这样的通用数据结构时,我都会看到HashSet和HashMap。在搜索关于这些的更多信息时,我已阅读了位于其基础的散列表。所以我了解到,为了将键映射到相应的值,它使用了散列函数。
我的问题是:为什么不使用简单的索引通信?
我试图回答自己,但我不知道的优点是正确的:
通过指数
+速度更快,因为没有计算涉及
+无碰撞
通过哈希
+内存经济,因为需要第三个数组来关联密钥和值HashMap中的键 - 值映射
但是我一直认为几个触发器比几个字节更珍贵。无论如何,我不认为Java中有像简单的IndexMap那样的DS,是吗?我在这里错过了什么?
编辑:
通过由折射率我的意思是这样的:一个数组是通过结构的有序结构,它具有索引;所以有两个数组相关,比如说keys []和values []意味着keys [i]对应于values [i]。所以,不需要关系功能。我肯定在这里错过了一些东西,我想看看是什么。
密钥“ThisIsMyKey”的索引是什么?也没有“拖鞋”,因为这里没有浮点。您真的需要查看基本的数据结构。你的问题表明你错过了一些基本概念。 –
你是什么意思,“按指数”?你在谈论列表...? – 2rs2ts
也许一些链接到你在说什么。也许你比较哈希表树结构? –