将多个整数数组输入到arrayList中,然后打印每个数组

时间:2016-11-03 17:36:40

标签: java arrays arraylist quicksort

我正在寻找创建动态数量的随机整数数组,然后将它们放入数组列表中。后来我想分别使用这些数组中的每一个来测试快速排序功能。我在将对象List []添加到ArrayList时遇到问题。

{{1}}

}

1 个答案:

答案 0 :(得分:1)

您的代码存在的问题是您将相同数组存储了5次ArrayList,因此在生成期间打印时会打印正确的数字,但后来您无法获得他们出去了。 for循环的每次迭代都会覆盖之前生成的值。

以下是更正后的代码:

private static ArrayList<int[]> randomizer(int arrays, int size, int seed){
    ArrayList<int[]> tests = new ArrayList<>(arrays);
    for (int j = 0; j < arrays; j++) {
        int[] list = new int[size];
        Random r = new Random(seed + j);
        for(int i = 0; i < size; i++) {
            list[i] = r.nextInt(5 * size); // Multiplier for how big the numbers get
        }
        tests.add(j, list);
    }
    return tests;
}

public static void main(String[] args) {
    int tests = 5;
    int size = 4;
    ArrayList<int[]> arrays = randomizer(tests, size, 10);
    for (int i = 0; i < arrays.size(); i++){
        int[] ints = arrays.get(i);
        for (int j = 0; j < ints.length; j++) {
            System.out.print(ints[j] + ",");
        }
        System.out.println();
    }
}

基本上你需要在for循环中移动int[] list = new int[size];行,这样你实际上每次创建新数组而不是使用相同的数组。

您现在可以用main()方法替换您喜欢的任何打印循环,例如快速排序测试。如果有任何问题仍无效,请告诉我。