在java中存储10,000条记录的最佳数据结构

时间:2016-07-19 17:41:27

标签: java algorithm data-structures

我在接受采访时被问到这个问题。我认为这个问题过于通用,无法指定特定的数据结构。

但是,如果我们将问题通道化为以下标准,那么最好使用哪种数据结构:

  1. 如果插入速度最快?
  2. 如果要搜索特定数据最快?

1 个答案:

答案 0 :(得分:6)

HashSet提供O(1)插入和O(1)搜索,从理论的角度来看很难超越。

实际上,对于大小为10.000的引用,排序的ArrayList可能仍然优于HashSet,尽管插入为O(n)且搜索为O(log(n))。为什么?因为它将数据(至少是引用)存储在连续的内存范围内,因此可以利用硬件内存缓存。

big-O表示法的问题在于它完全忽略了单个操作所需的时间。对于渐近考虑和非常庞大的数据集来说这很好,但是对于10.000的大小,这可能会产生误导。

但是,哈文没有尝试过。而且我打赌你的面试官也没有:)。