public class SparseArray {
public static void main(String[] args) {
int gameArray[][] = new int[11][11];
gameArray[1][3] = 2;
gameArray[10][5] = 1;
gameArray[3][7] = 1;
gameArray[6][9] = 2;
int count = 0;
for (int[] arrs : gameArray) {
for (int arr : arrs) {
if (arr != 0) {
count++;
}
}
}
System.out.println("=================原始数组=====================");
for (int i = 0; i < gameArray.length; i++) {
for (int j = 0; j < gameArray[i].length; j++) {
System.out.print(gameArray[i][j] + " ");
}
System.out.println();
}
int sparseArray[][] = new int[count + 1][3];
sparseArray[0][0] = 11;
sparseArray[0][1] = 11;
sparseArray[0][2] = count;
int index = 0;
for (int i = 0; i < gameArray.length; i++) {
for (int j = 0; j < gameArray[i].length; j++) {
if (gameArray[i][j] != 0) {
index++;
sparseArray[index][0] = i;
sparseArray[index][1] = j;
sparseArray[index][2] = gameArray[i][j];
}
}
}
System.out.println("=================原始数组转稀疏数组=====================");
for (int i = 0; i < sparseArray.length; i++) {
System.out.println(sparseArray[i][0] + " " + sparseArray[i][1] + " " + sparseArray[i][2]);
}
int restoreArr[][] = new int[sparseArray[0][0]][sparseArray[0][1]];
for (int i = 1; i < sparseArray.length; i++) {
restoreArr[sparseArray[i][0]][sparseArray[i][1]] = sparseArray[i][2];
}
System.out.println("=================稀疏数组还原=====================");
for (int i = 0; i < restoreArr.length; i++) {
for (int j = 0; j < restoreArr[i].length; j++) {
System.out.print(restoreArr[i][j] + " ");
}
System.out.println();
}
}
}