我正在使用 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[][] 的所有元素都被零填充。我究竟做错了什么?
你真的先用数字填充数组吗?如果你这样做了,你只会打印出二维数组的第一部分。您需要打印出所有 40,000 个条目。数组中的每个数组 10,000 个。所以 [0][0...9999]、[1][0...9999] 等。
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,
---
我认为原因是您没有为数组的所有元素设置值。对于您未初始化的项目,默认值为 0。因此,当您对数组中的所有项目进行排序时,0 将交换到数组的第一部分。如果你输出数组的第一部分,你看到的都是零。大概吧。