作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于我的项目,我需要一个 ArrayList,它在 do-while-loop 中保存计数索引的值(如果 if 语句变为 true)。循环之后,列表应该打印出所需的各种值。但是,所有值都等于计数索引的最后一个值。
在寻找解决方案(没有成功)的过程中,我发现 ArrayList 只能用于存储对象。这可以以某种方式解释,ArrayList 保存的是对象,而不是想要的值。尽管如此,我的循环需要一个动态列表,其中包含嵌套循环(处理次数超过 500 次)和多个 if 语句,因此需要 ArrayList。
如何解决这个问题?还有其他选择吗?
一个简单的脚本来描述我的问题:
import java.util.ArrayList;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i1=0;
int i2=0;
ArrayList<int[]> iArray = new ArrayList<int[]>();
int[] x = new int[2];
do{
i1++;
do{
i2++;
x[0] = i1;
x[1] = i2;
iArray.add(x);
}while(i2<15);
}while(i1<15);
for(int[] i : iArray){
System.out.println("line 1: " + i[0] + " line 2: " + i[1]);
}
}
}
控制台输出:
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
提前致谢。
最佳答案
您只创建一个数组,然后多次添加同一数组。删除您的早期声明,并在循环中声明(并初始化)它。比如,
int[] x = {i1, i2};
// x[0] = i1;
// x[1] = i2;
iArray.add(x);
如果没有 x
在一行上,你可以做到这一点,
iArray.add(new int[] {i1, i2});
关于java - 如何将计数索引的值分配给ArrayList?不是计数索引的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33905400/
我是一名优秀的程序员,十分优秀!