Является ли SQLite cursor.getCount дорогой операцией в Android - PullRequest
22 голосов
/ 23 декабря 2011

Является ли SQLite cursor.getCount () дорогой операцией при выполнении на устройстве Android ?

Что быстрее:

Cursor cursor = db.rawQuery(sql, null);
int length = cursor.getCount();
final List<Item> items = new ArrayList<Item>(length * 2); // need maybe 2 items per row

if (cursor.moveToFirst()) {

      // loop trough the query result
      do {
...

или

Cursor cursor = db.rawQuery(sql, null);
final List<Item> items = new ArrayList<Item>();  // capacity is 0 by default on android

if (cursor.moveToFirst()) {

      // loop trough the query result
      do {

1 Ответ

14 голосов
/ 04 августа 2014

Если вы сравните время, необходимое для выполнения обоих примеров кода, вы заметите, что оно одинаково, потому что Cursor.moveToFirst() в конечном итоге вызывает SQLiteCursor.getCount()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...