Java语言怎么用斜线的方法来计算矩阵的加法?斜线绕回相加在矩阵里面实现的过程是怎么样的?
【相关推荐】
对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址,大小以及使用情况。通常,GC采用有向图的方式记录和管理堆中所有的对象,通过这种方式确定哪些对象时可达的,哪些对象时不可达的,当GC确定一些对象不可达时,GC就有责任回收这些内存空间。
程序员可以手动执行System.gc() ,通知GC运行,但java语言规范并不保证GC一定会执行
import java.util.Arrays;
public class ArrayTest {
public static void main(String[] args) {
int[][] arr = new int[6][7];
int total = 0;
// 赋初始值
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = i * 10 + j;
total += arr[i][j];
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(Arrays.toString(arr[i]));
}
int row = 0;// 行自增方向 1向下,-1向上
int col = 1;// 列自增方向 1向右,-1向左
int sum = 0;
int i = 0;
int j = 0;
while (i < arr.length && j < arr[i].length) {
sum += arr[i][j];
System.out.println(arr[i][j]);
if (i == 0 && (row == -1 || row == 0)) {// 该向左下了
row = 1;
col = -1;
if (j == arr[i].length - 1) {// 如果右边到头了,得从下一行开始
i++;
} else {
j++;
}
continue;
}
if (j == arr[i].length - 1 && col == 1) {// 该向左下了
row = 1;
col = -1;
i++;
continue;
}
if (j == 0 && col == -1) {// 该向右上了
row = -1;
col = 1;
if (i == arr.length - 1) {// 如果到了最底下那一行,得从右边的开始了
j++;
} else {
i++;
}
continue;
}
if (i == arr.length - 1 && row == 1) {// 该向右上了
row = -1;
col = 1;
j++;
continue;
}
i += row;
j += col;
}
System.out.println();
System.out.println(sum == total);
}
}