Java 与ArrayList相比,SQLite查询具有更好的性能<;对象>;记忆中

Java 与ArrayList相比,SQLite查询具有更好的性能<;对象>;记忆中,java,android,performance,sqlite,Java,Android,Performance,Sqlite,我正在开发一个使用内部sqlite数据库的应用程序。MainActivity包含一个片段。此片段有一个ViewPager,其中包含其他3个片段,这3个片段中的每个片段都有一个ListView。单击列表项时,将打开第二个活动,其中包含另一个ViewPager,其中包含显示每个列表项的完整详细信息(位图和字符串)的片段 我的问题是,什么对性能更有利 每次用户滚动详细信息片段(ViewPager)时对数据库进行持续调用 只对数据库进行三次调用(mainActivity中的每个listview调用一次)

我正在开发一个使用内部sqlite数据库的应用程序。MainActivity包含一个片段。此片段有一个ViewPager,其中包含其他3个片段,这3个片段中的每个片段都有一个ListView。单击列表项时,将打开第二个活动,其中包含另一个ViewPager,其中包含显示每个列表项的完整详细信息(位图和字符串)的片段

我的问题是,什么对性能更有利

  • 每次用户滚动详细信息片段(ViewPager)时对数据库进行持续调用

  • 只对数据库进行三次调用(mainActivity中的每个listview调用一次),以创建3个ArrayList对象并将其保存在内存中。列表中可能有很多项

  • 还有什么我没有考虑的吗

  • 三,。还有什么我没有考虑的吗


    是的,请改用。

    如果您有一些记录,请将它们加载到数组中。如果您有大量记录,请按需加载。a)听起来是个糟糕的主意,单个查询比生成列表的1个查询慢b)听起来合理(尽管您不应该盲目地提前进行3个查询,在需要时进行)我更喜欢c)使用
    游标加载程序(如果不使用
    内容提供程序
    )由于它们将结果缓存在内存中,按需加载,异步执行查询,…@zapl使用加载程序,以及它们保留数据的能力,现在我想到了。我将摆脱第二个活动,并在MainActivity中执行所有操作,因此我可以使用它的LoaderManager在所有片段之间共享加载程序实例的数据。对吗?让我们开始吧假设我在应用程序启动时创建一个加载器实例来填充列表,其余片段稍后将使用同一个加载器。除了使用加载器的好处(异步、监视数据源…)之外,加载器保留数据和在内存中保留对象的ArrayList之间有多大区别?