上篇博客我介绍了如何将二维数组转换成稀疏数组,本篇将介绍如何把这个过程返回去。
首先我们来看一下二维数组和稀疏数组的样子:
好了废话不多说直接上代码:
//将稀疏数组恢复成原始数组
int chessArr2[][] = new int[sparseArr[0][0]][sparseArr[0][1]];
for(int i = 1;i<sparseArr.length;i++) {
chessArr2[sparseArr[i][0]][sparseArr[i][1]] = sparseArr[i][2];
}
//恢复后的二维数组
System.out.println();
System.out.println("恢复后的二维数组");
for(int[] row : chessArr1) {
for(int data: row) {
System.out.printf("%d\t",data);
}
System.out.println();
}
这里我们创建了chessArr2[][]数组,该数组就是我们需要转换最终得到结果的数组。
好这里我们可以看到第一行代码把稀疏数组的[0][0]位置和[0][1]的数值恢复成原始数组的行数和列数,接着使用for循环将稀疏数组的非0数据赋给新的数组。 最后使用for增强循环遍历原始数组,输出结果!
总结:稀疏数组转二维数组思路:
1.先读稀疏数组第一行,根据第一行的数据创建原始的二维数组。