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