在Android中SQLite cursor.getCount是否昂贵

时间:2011-12-23 16:45:52

标签: android sqlite

Android 设备上执行 SQLite cursor.getCount()代价是否昂贵?

哪个更快:

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 个答案:

答案 0 :(得分:14)

如果比较两个代码示例执行所需的时间,您会发现它是相同的,因为Cursor.moveToFirst()最终会调用SQLiteCursor.getCount()