【发布时间】:2017-01-21 08:47:31
【问题描述】:
Map(或 HashMap)在插入、删除和检索时花费恒定的时间。虽然到目前为止我所知道的所有其他数据结构都不会花费恒定的时间,并且它们用于上述操作的时间取决于输入的大小。
那么,为什么我们还需要所有其他数据结构呢? HashMap 不是通用数据结构吗?
【问题讨论】:
-
Isn't HashMap is universal data structure?- 不,它不保留元素顺序,不允许重复,也不允许您按索引和...访问元素。 -
尝试学习 Go,其中地图基本上是唯一的内置数据结构(除了数组)。你可以只用地图来做事;但是用地图实现集合的新颖性再次很快就消失了。
-
您从哪里得知插入、删除和检索需要固定时间?
This implementation provides constant-time performance for the basic operations (get and put), assuming the hash function disperses the elements properly among the buckets.并且您无法提供哈希函数,但使用了该类型的内置函数…… -
尝试在哈希图中存储范围。或者找到最接近特定值的项目。所以你可能有键 5 和 8,如果有人搜索键 7,你会返回 8,因为它是最接近的。 Map 和 HashMap 非常适合通过精确值查找事物,但这只是程序访问事物的一小部分。有很多事情是 HashMap 或类似结构无法完成或无法有效完成的。
标签: java data-structures collections stl hashmap