Android - 将 Cursor 数据放入 HashMap 中以加快数据检索

Android - Putting Cursor data in a HashMap to speed up data retrieval

我正在使用 Android 游标开发带有 sqlite 数据库的测验应用程序。现在用户可以在问题之间跳转。如果他转到下一个问题,我将调用 cursor.moveToNext(),否则 cursor.moveToPrevious。在每个 "jump" 上,我用数据库的数据(问题、答案、图片、类别)填充对象。现在我考虑创建一个具有所有必需数据的测验对象,并将其放入 HashMap 中。以光标位置为键,以测验对象为值的 HashMap。所以我不必在每次跳跃时都从数据库中读取数据。此外,它还可以避免多次创建对象。

有道理吗?

光标不会在每次跳转时进行查询。它也是数据的容器,就像地图一样。从数据库中获取数据然后填充地图对我来说并不是一个优化的解决方案。我仍然喜欢在光标上工作并获取数据。

根据Cursor将数据缓冲到内存中。这意味着您的应用不会在每个 cursor.moveToNext() 上直接从数据库中读取。因此,我认为您不需要 HashMap。另一方面,QuestionQuiz class 可以非常有助于将数据传递给需要使用它的每个方法。