作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试用 Java 实现 Strassen 算法,我正处于需要将输出组合成单个矩阵/二维数组的步骤。我正在使用 System.arraycopy
复制数组,这很适合以自上而下的方式连接两个数组,但是,我还需要并排连接它们,但我遇到了麻烦接着就,随即。我遇到了 ArrayOutOfBoundsException
。这是我的代码
static int[][] Consolidate(int[][] c11, int[][] c12, int[][] c21, int[][] c22) {
/* check size compatibility */
if(c11[0].length == c21[0].length &&
c11.length == c12.length &&
c21.length == c22.length &&
c22[0].length == c12[0].length) {
int _rowSize = c11.length + c21.length;
int _colSize = c11[0].length + c12[0].length;
int[][] retArray = new int[_rowSize][_colSize];
int[][] ltArray = new int[_rowSize][c11[0].length];
int[][] rtArray = new int[_rowSize][c12[0].length];
System.arraycopy(c11, 0, ltArray, 0, c11.length);
System.arraycopy(c21, 0, ltArray, c11.length, c21.length);
System.arraycopy(c12, 0, rtArray, 0, c12.length);
System.arraycopy(c22, 0, rtArray, c12.length, c22.length);
System.arraycopy(ltArray, 0, retArray, 0, ltArray.length);
System.arraycopy(rtArray, 0, retArray, ltArray.length, rtArray.length);
return retArray;
}
return null;
}
最后一行
System.arraycopy(rtArray, 0, retArray, ltArray.length, rtArray.length);
抛出异常。有没有办法并排连接数组(以列方式)?
最佳答案
EDIT 这是经过验证的答案
您可以手动复制最后一部分。
替换
System.arraycopy(ltArray, 0, retArray, 0, ltArray.length);
System.arraycopy(rtArray, 0, retArray, ltArray.length, rtArray.length);
与
//Commented both calls
//System.arraycopy(ltArray, 0, retArray, 0, ltArray.length);
//System.arraycopy(rtArray, 0, retArray, ltArray.length, rtArray.length);
for (int row = 0; row < ltArray.length; row++) {
int colInTarget = 0;
for (int col = 0; col < ltArray[row].length; col++,colInTarget++) {
retArray[row][colInTarget] = ltArray[row][col];
}
for (int col = 0; col < rtArray[row].length; col++,colInTarget++) {
retArray[row][colInTarget] = rtArray[row][col];
}
}
关于java - 在Java中加入四个二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12236906/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!