为什么我们需要除HashMap之外的数据结构

时间:2017-01-21 08:47:32

标签: java data-structures collections stl hashmap

Map(或HashMap)为插入,删除和检索获取恒定时间。虽然到目前为止我所知道的所有其他数据结构都没有花费时间,上述操作的时间取决于输入的大小。

那么,为什么我们需要所有其他数据结构呢?不是HashMap是通用数据结构吗?

2 个答案:

答案 0 :(得分:1)

Map 的表现并不免费,成本是内存和复杂性。

对于您不关心表演以及何时不需要访问该集合中的一个元素的所有情况,都存在其他数据结构。

例如,如果你有一个给定的元素列表字符串,并且你的代码中唯一的用途是打印出这个元素列表,那么最好选择使用一个字符串数组。

另一个例子,可能是元素的顺序。如果您关心元素的顺序,那么 Map 不是您应该使用的数据结构,因为订单无法保证,因此您必须在每次需要时进行排序。

这只是两个例子,每个数据结构都有许多其他的例子。

答案 1 :(得分:0)

时不应该使用HashMap
  • 普通的Java对象可以完成这项工作。 Java对象类型安全且效率更高。
  • 当您需要排序的集合时。
  • 当密钥是Enum时。
  • 当索引是从{0开始的int时。
  • 当钥匙可能会改变时。
  • 何时需要并发访问。
  • 当您需要任何订购或优先处理时。
  • 当你需要一套东西时(即没有价值)