java - 如何使用 For 循环来减少以下代码中的行数?
问题描述
我正在尝试使用 SQLite 中的数据填充列表。如何使用 For 循环来减少以下代码中的行数?我必须将字符串数组 fa、fe、fi、fo 传递给 ListAdapter。
arrayList = new ArrayList<>();
Cursor res = myhelp.getAllData();
if (res.getCount() == 0) {
Toast.makeText(this, "No data", Toast.LENGTH_SHORT).show();
}else {
while (res.moveToNext()) {
arrayList.add(res.getString(0));
fa = arrayList.toArray(new String[0]);
}
}
arrayList1 = new ArrayList<>();
Cursor res1 = myhelp.getAllData();
while (res1.moveToNext()) {
arrayList1.add(res1.getString(1));
fe = arrayList1.toArray(new String[0]);
}
arrayList2 = new ArrayList<>();
Cursor res2 = myhelp.getAllData();
while (res2.moveToNext()) {
arrayList2.add(res2.getString(2));
fi = arrayList2.toArray(new String[0]);
}
arrayList3 = new ArrayList<>();
Cursor res3 = myhelp.getAllData();
while (res3.moveToNext()) {
arrayList3.add(res3.getString(3));
fo = arrayList3.toArray(new String[0]);
}
解决方案
由于您的源数据始终相同,因此您无需多次重新读取,只需循环一次
arrayList = new ArrayList<>();
arrayList1 = new ArrayList<>();
arrayList2 = new ArrayList<>();
// etc
Cursor res = myhelp.getAllData();
while (res.moveToNext()) {
arrayList.add(res.getString(0));
fa = arrayList.toArray(new String[0]);
arrayList1.add(res.getString(1));
fe = arrayList1.toArray(new String[0]);
arrayList2.add(res.getString(2));
fi = arrayList2.toArray(new String[0]);
// etc
}
笔记
不知道fa = arrayList.toArray(new String[0]);
在做什么,但我认为你可以在循环之后做
推荐阅读
- angular - Angular Mat-table 扩展和折叠未按预期工作
- c# - 如何将 Table2 列添加到 table1
- c# - 比较两个文本相同的字符串,只替换字符串后面
- python - 通过 Pyqt5 python 保存文件
- r - R - 使用 purrr::pmap() 进行逐行迭代
- php - 数据库抽象层——那是什么?
- r - 关于特定条件下 group_by 的总和
- java - 陈旧元素的 JSON 状态映射 - Selenium 和 Java
- python - Anaconda (Python) - Windows 10 上的 Cmder 集成
- pandas - 在 Chartify 中为分组条形图添加图例