首页 > 为什么要使用hashtable 而不是使用数组?

为什么要使用hashtable 而不是使用数组?

最近在看数据结构 , hashtable通过 hash方法 将(key=>value)这样的数据随机散列到每个bucket中,但是这样的操作数组也是可以完成的,有点想不通 为何还用hashtable


HashTable和Array是完全两种数据结构,当然,他们在存储数据方面有很多的相似性,但是他们的特点决定了他们的适用情况。

举个简单的例子,设计一个存储和查询三千万条字符串的程序,如果我们使用Array去实现,那每次查询字符串时都需要对数组进行遍历,平均消耗时间是O(N/2)。而通过HashTable去设计,根据HastTable的特性,平均消耗时间基本能缩小到O(1),你说哪个数据结构更适合用在这个程序上呢?


就说一点:

hashtable 键可以是几乎所有类型,数组可以吗?


  1. HashTable是可以用数组来实现的,但性能不是太好。

  2. 数据结构是封装给程序员用的,在很多场景下通过key读取value是个很常见的操作,每个程序员没必要再实现一遍。

【热门文章】
【热门文章】