在 Android 中迭代来自 Cursor 的特定数据计数

Iterating specific count of data from a Cursor in Android

我想遍历数据库中的游标数据,我不会 returning 游标中的所有数据。我只需要 5 行随机数据我有逻辑 return 下面的所有数据但我只想要五行被 returned.

  private ArrayList<Insect> insectList(){


    ArrayList<Insect> insects = new ArrayList<>();
    Collections.shuffle(insects);

    if (cursor.moveToFirst()) {
        do {
            Insect insect = new Insect();
            insect.setName(cursor.getString(cursor.getColumnIndex(BugsContract.BugsEntry.COLUMN_FRIENDLYNAME)));
            insect.setScientificName(cursor.getString(cursor.getColumnIndex(BugsContract.BugsEntry.COLUMN_SCIENTIFICNAME)));
            insect.setClassification(cursor.getString(cursor.getColumnIndex(BugsContract.BugsEntry.COLUMN_SCIENTIFICNAME)));
            insect.setImageAsset(cursor.getString(cursor.getColumnIndex(BugsContract.BugsEntry.COLUMN_IMAGEASSET)));
            insect.setDangerLevel(Integer.parseInt(cursor.getString(cursor.getColumnIndex(BugsContract.BugsEntry.COLUMN_DANGERLEVEL))));

            insects.add(insect);
        } while (cursor.moveToNext());
    }



    return insects;
}

我可以使用哪个完美循环来在迭代时从该游标中只获得五行

if (cursor.getCount() > 0) {
    int count = 0;
    while (cursor.moveToNext()){
         if(count < 5){ 
             count++;
             Insect insect = new Insect();
        insect.setName(cursor.getString(cursor.getColumnIndex(BugsContract.BugsEntry.COLUMN_FRIENDLYNAME)));
        insect.setScientificName(cursor.getString(cursor.getColumnIndex(BugsContract.BugsEntry.COLUMN_SCIENTIFICNAME)));
        insect.setClassification(cursor.getString(cursor.getColumnIndex(BugsContract.BugsEntry.COLUMN_SCIENTIFICNAME)));
        insect.setImageAsset(cursor.getString(cursor.getColumnIndex(BugsContract.BugsEntry.COLUMN_IMAGEASSET)));
        insect.setDangerLevel(Integer.parseInt(cursor.getString(cursor.getColumnIndex(BugsContract.BugsEntry.COLUMN_DANGERLEVEL))));

        insects.add(insect);
         }
    }
    cursor.close();
}