【发布时间】:2021-02-03 22:37:29
【问题描述】:
我有两个相同维度的二维整数数组需要比较。我将通过一个示例解释我需要什么,其中 Sjm1 是“原始”数组,而 Sjm2 数组具有与 Sjm1 相同的值,但每列的值按升序排列(即“0”是Sjm1 在第 0 列中,所以 Sjm2[0][0]=0;然后“70”是第 0 列中 Sjm1 的下一个最小值⇒Sjm2[1][0]=70;等等)。我有一种方法可以将“Sjm1”数组排序为“Sjm2”。
现在我需要构建一个“输出”数组(整数的二维数组),其中每列中的值表示 Sjm1 数组中与 Sjm2 中列的元素一致的行数。比如Output[0][0]=5,因为Sjm1[0][0]=366是Sjm2[5][0]=366; Output[1][0]=2 因为Sjm1[1][0]=104 是Sjm2[2][0]=104;等等)。
因此,对于前面介绍的示例,所需的输出必须如下:
我尝试在 Java 中构建一个方法,在该方法中我传递了两个 2D 整数数组,但没有按需要工作:
public static int[][] sec(int[][] Sjm1, int[][] Sorted_Sjm2) {
int k;
int[][] output = new int[Sjm1.length][Sjm1[0].length];
for (int j = 0; j < Sjm1.length; j++) {
k = 0;
for (int m = 0; m < Sjm1[0].length; m++) {
if (Sorted_Sjm2[j][m] == Sjm1[j][m]) {
output[j][m] = k;
k++;
}
}
}
return output;
}
输出显然不是我需要的:
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6]
如果有人可以帮助我,我会很高兴。
【问题讨论】:
标签: java arrays sorting multidimensional-array columnsorting