我正在学习Android开发,我经常遇到的一件事是使用Map
代替List
如果:
我很困惑,因为我的要求是只有一个有序的数据结构。例如,我有一个List作为RecyclerView.Adapter
的来源,并且由于适配器按索引要求数据,所以List
是好的。
但后来,需要搜索现有的List并相应地添加一些新元素。(请注意,这仍然不意味着我使用Map
)搜索列表会产生O的成本(n)我想把它归结为O(1),并且由于我的结构有助于使用Key,我想到了一个提供排序,散列以及索引检索的Map。我在Apache Commons中找到了这样的数据结构。
问题在于,由于它单独使用List来维护数据的有序索引,因此该结构的内存占用量将远远高于使用例如ArrayList
,并且内存占用对移动开发很重要,但是速度。
我的问题是,
使用ListOrderedMap
获得一些速度但消耗更多内存是否值得权衡,尤其是在移动设备上开发时?