在 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();
}
我想遍历数据库中的游标数据,我不会 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();
}