我正在尝试使用下面的代码创建一个列表,它存储随机二进制字符串。但每次我打印list的字符串元素时,所有打印的字符串元素都是相同的。 ex 101 101 101 101.如何使其发挥作用?
ArrayList<String[]> coded = new ArrayList<String[]>();
Random rand = new Random();
for(int j=0; j<4;j++){
for (int i=0; i<3;i++){
rand1 = (rand.nextInt(4)+0)%2;
x1[i]= "" + rand1;
}
coded.add(x1);
}
答案 0 :(得分:1)
你只声明了一个x1
数组(某处),所以实际上你只是在同一个数组中添加一堆引用到列表中。该数组将包含在上一次迭代期间插入的值。
在循环内声明数组以解决问题。
for (int j=0; j<4; j++){
String[] x1 = new String[3];
for (int i=0; i<3; i++){
rand1 = (rand.nextInt(4) + 0) % 2;
x1[i]= "" + rand1;
}
coded.add(x1);
}