Es SQLite cursor.getCount() operación cara cuando se ejecuta en dispositivo Android?Es SQLite cursor.getCount operación costosa en Android
que es más rápido:
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 {
...
o
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 {
No creo que haya una diferencia significativa en el rendimiento, a menos que hable de una cantidad/tamaño considerable de elementos. De lo contrario, creo que su pregunta ofrece algún tema para discutir como: ¿es mejor asignar la memoria por adelantado en su teléfono para obtener rendimiento ... – hovanessyan
No creo que haya una diferencia en el rendimiento. 'cursor.moveToFirst()' llama a 'onMove' que llama a' getCount'. Entonces getCount puede ser muy lento, pero realmente no puedes escapar de él. – Malabarba