最近在看数据结构 , hashtable通过 hash方法 将(key=>value)这样的数据随机散列到每个bucket中,但是这样的操作数组也是可以完成的,有点想不通 为何还用hashtable
HashTable和Array是完全两种数据结构,当然,他们在存储数据方面有很多的相似性,但是他们的特点决定了他们的适用情况。
举个简单的例子,设计一个存储和查询三千万条字符串的程序,如果我们使用Array去实现,那每次查询字符串时都需要对数组进行遍历,平均消耗时间是O(N/2)。而通过HashTable去设计,根据HastTable的特性,平均消耗时间基本能缩小到O(1),你说哪个数据结构更适合用在这个程序上呢?
就说一点:
hashtable 键可以是几乎所有类型,数组可以吗?
HashTable是可以用数组来实现的,但性能不是太好。
数据结构是封装给程序员用的,在很多场景下通过key读取value是个很常见的操作,每个程序员没必要再实现一遍。