使用哈希结构而不是列表来获得速度增益的权衡

时间:2017-06-23 17:18:27

标签: java android data-structures

我正在学习Android开发,我经常遇到的一件事是使用Map代替List 如果

  • 存在映射到我的模型对象的 Key
  • 是模型对象的字段

我很困惑,因为我的要求是只有一个有序的数据结构。例如,我有一个List作为RecyclerView.Adapter的来源,并且由于适配器按索引要求数据,所以List是好的。

但后来,需要搜索现有的List并相应地添加一些新元素。(请注意,这仍然不意味着我使用Map)搜索列表会产生O的成本(n)我想把它归结为O(1),并且由于我的结构有助于使用Key,我想到了一个提供排序,散列以及索引检索的Map。我在Apache Commons中找到了这样的数据结构。

问题在于,由于它单独使用List来维护数据的有序索引,因此该结构的内存占用量将远远高于使用例如ArrayList,并且内存占用对移动开发很重要,但是速度。

我的问题是,

使用ListOrderedMap获得一些速度但消耗更多内存是否值得权衡,尤其是在移动设备上开发时?

0 个答案:

没有答案