java - 如何将嵌套的 For 循环输出动态输入到 ArrayList-Android
问题描述
我是 Android 的初学者,我编写了一个代码来找出两个数字(x 和 y)之间的素数。
我已经成功地找出了质数,但我的应用程序有一个按钮(“b2”)和:onclick(“更改订单”)附加到它,所以我需要帮助的是。
我正在尝试将嵌套 for 循环的输出设置为 ArrayList,但无法为每次迭代动态设置。我基本上想用“Collections.reverse()”对arraylist的元素重新排序。
x = Integer.parseInt(et1.getText().toString());
y = Integer.parseInt(et2.getText().toString());
for (i = x; i <= y; i++) {
if (i == 1 || i == 0)
continue;
flag = 1;
for (j = 2; j <= i / 2; ++j) {
if (i % j == 0) {
flag = 0;
break;
}
}
if (flag == 1) {
myList = new ArrayList<Integer>();
for (flag=i; i>0;){
myList.add(i); //this i suppose will do the trick
}
fResult = new String(myList.toString());
t1.setText(fResult);
t1.setTextColor(getResources().getColor(R.color.myColor));
t2.setTextColor(getResources().getColor(R.color.myColor));
Toast.makeText(this, R.string.df, Toast.LENGTH_LONG).show();
}
}
};
public void CloseKeyboard() {
View view = getCurrentFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
public void changeOrder(View view) {
b2 = (Button) findViewById(R.id.myButton2);
Collections.reverse(myList);
t1.setText(myList.toString());
b2.setText(R.string.chnge_text);
}
解决方案
使用 ArrayList num = new ArrayList<>();
它将工作并动态附加您的 for 循环的输出。有关更多详细信息,您可以参考https://www.w3schools.com/java/java_arraylist.asp
在进一步检查时,您应该在循环的开头定义 myList。发生的情况是,每次当 flag==1 条件满足时,您都在创建一个新的 ArrayList,因此以前的数据会丢失,而您只剩下最后一个值。
推荐阅读
- javascript - async/await 函数意外返回
- api - Postman API 删除功能问题
- python - 有任何用于识别简单形状的预制 .prototxt 和 .model 吗?
- python - 使用棉花糖进行 JSON 反序列化的嵌套类
- python - 计算时间序列中的峰值
- php - 使用 jquery / ajax / php 提交文件
- javascript - 使用 React 和 API 时如何修复“TypeError:items.map 不是函数”?
- sharepoint - 有没有办法,如何在 SharePoint Online 中将列更改为链接到项目?
- python - python从url和缩略图下载图像并调整大小
- amazon-ecs - 如何在不影响 ECS 服务的情况下捕获 on-JVM-exit 堆转储?