Java Arrays.sort将结果重置为全零

时间:2012-05-17 13:15:20

标签: java arrays sorting

我正在使用Java Arrays.sort来排序二维数组的元素:

int[][] RAM = new int[4][10000];

我用整数填充RAM数组,然后调用:

for (i=0;i<4;i++){
    Arrays.sort(RAM[i]);
System.out.println(i);
}

这导致RAM [] []的所有元素都用零填充。我做错了什么?

3 个答案:

答案 0 :(得分:2)

您是否先使用数字填充数组? 如果你这样做,你只打印出2D数组的第一部分。您需要打印所有40,000个条目。数组中每个数组10,000个。所以[0] [0 ... 9999],[1] [0 ... 9999]等等。

答案 1 :(得分:0)

public static void show (int [][] list)
{
    System.out.println ("- show: -");
    for (int [] ia : list) {
        for (int i : ia)
            System.out.print (i + ", ");
        System.out.println ();
    }
    System.out.println ("---");
}

static Random random = new Random ();

public static void main (String [] args)
{
    int[][] RAM = new int[4][2];
    for (int i = 0; i < 4; ++i)
    {
        for (int j = 0; j < 2; ++j)
        {
            RAM[i][j] = random.nextInt (20);
            System.out.print (i*2 +j);
        }
    }
    show (RAM);
    for (int i=0; i<4; i++) {
        Arrays.sort (RAM[i]);
    }
    show (RAM);
    System.out.println ();
}

结果:

- show: -
8, 13, 
12, 10, 
16, 3, 
7, 1, 
---
- show: -
8, 13, 
10, 12, 
3, 16, 
1, 7, 
---

答案 2 :(得分:0)

我认为原因是您没有为数组的所有元素设置值。对于未初始化的项目,默认值为0.因此,当您对数组中的所有项目进行排序时,0将交换到数组的第一部分。如果输出数组的第一部分,你看到的只是零。我想是的。