Подтвердить что ты не робот

SQLite cursor.getCount дорогая операция в Android

Является 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 {
4b9b3361

Ответ 1

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