每次输出随机填充的数组列表多次,结果不同?

时间:2014-03-11 04:40:13

标签: java sorting random arraylist permutation

所以我用1-10中的随机数填充数组,使用第二个数组从中获取数字。我需要获得10个不同的结果,每个结果输出一个不同的随机数组列表。我怎么能这样做?现在,如果我尝试输出不止一次,它只是一遍又一遍地输出相同的数字。我需要10种不同的输出。

public static void main(String[] args) {
    List<Integer> numbers =new ArrayList<Integer>();
    List<Integer> numbers2 =new ArrayList<Integer>();

    Random generator = new Random();


    for(int i = 0; i<=10;i++) {
        numbers2.add(i);
    }

   for(int z = 0; z<=10; z++){

    for(int i = 0; i<=1000;i++) {

        int x = generator.nextInt(10)+1;
        if (!numbers.contains((numbers2.get(x)))) {
            numbers.add(numbers2.get(x));;
        }
    }
    System.out.println(numbers);
}

}

1 个答案:

答案 0 :(得分:0)

您在10次迭代中每次使用相同的numbers数组。到第一次迭代结束时,数组已经有从1到10的每个数字,因此if条件将评估为false,并且不会添加任何数据。

因此,您需要为10次迭代中的每次迭代创建一个新的numbers数组,或者在打印后删除其内容。