在Android的SQLite的cursor.getCount昂贵的操作昂贵、操作、SQLite、Android

由网友(誓言已成谎言)分享简介:是 SQLite的cursor.getCount()当执行昂贵的操作机器人设备?这是更快:光标光标= db.rawQuery(SQL,NULL);INT长度= cursor.getCount();最后的名单,其中,项目>项目=新的ArrayList<项目>(长×2); //需要每行,也许2项如果(...

是 SQLite的cursor.getCount()当执行昂贵的操作机器人设备?

这是更快:

 光标光标= db.rawQuery(SQL,NULL);
INT长度= cursor.getCount();
最后的名单,其中,项目>项目=新的ArrayList<项目>(长×2); //需要每行,也许2项

如果(cursor.moveToFirst()){

      //循环槽查询结果
      做 {
...
 

 光标光标= db.rawQuery(SQL,NULL);
最后的名单,其中,项目>项目=新的ArrayList<项目>(); //容量为0默认情况下,在Android

如果(cursor.moveToFirst()){

      //循环槽查询结果
      做 {
 

解决方案 android学习十一 android的SQLite数据库的使用

如果你比较执行都需要code样品的时候,你会发现它是相同的,因为Cursor.moveToFirst()最终调用 SQLiteCursor.getCount()

Is SQLite cursor.getCount() expensive operation when executed on Android device?

Which is faster:

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 {
...

or

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 {

解决方案

If you compare the time required for both code samples to execute, you'll notice it's the same because Cursor.moveToFirst() is eventually calling SQLiteCursor.getCount()

阅读全文

相关推荐

最新文章