【发布时间】:2011-01-05 20:33:06
【问题描述】:
似乎每次我看到在哈希表中提到单独链接时,都会使用链表作为数据结构来存储有冲突的项目。为什么是这样?例如,为什么不能使用向量/数组数据结构?
【问题讨论】:
标签: data-structures vector hashtable linked-list
似乎每次我看到在哈希表中提到单独链接时,都会使用链表作为数据结构来存储有冲突的项目。为什么是这样?例如,为什么不能使用向量/数组数据结构?
【问题讨论】:
标签: data-structures vector hashtable linked-list
如果您有一个对象向量,那么复制对象可能会很昂贵,因此大多数通用哈希表使用链表,在删除或插入时不需要复制。然而,在大多数代码中,从哈希表中删除实际上是相当罕见的操作,并且插入应该很少见(你不想增长长链)所以每当我自己实现哈希时,我总是使用向量作为链,绝对没有问题。
另一种解释是,链表是人们盲目获取的容器 - 请参阅我的博客 cmets here 了解更多关于此的意见。
【讨论】:
您可以使用向量 / ArrayList 但是:
【讨论】: