java - 在arraylist中存储字符串序列

时间:2016-05-20 07:09:26

标签: java

我正在尝试使用下面的代码创建一个列表,它存储随机二进制字符串。但每次我打印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);
}  

1 个答案:

答案 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);
}