public static void main(String[] args) {
int chessArr1[][] =
new
int[11][11];
chessArr1[1][2] = 1;
chessArr1[2][3] = 2;
chessArr1[4][5] = 2;
System.out.println(
"原始的二维数组:"
);
printArray(chessArr1);
int sum = 0;
for
(int i = 0; i < 11; i++) {
for
(int j = 0; j < 11; j++) {
if
(chessArr1[i][j] != 0) {
sum++;
}
}
}
int sparesArr[][] =
new
int[sum + 1][3];
sparesArr[0][0] = 11;
sparesArr[0][1] = 11;
sparesArr[0][2] = sum;
int count = 0;
for
(int i = 0; i < 11; i++) {
for
(int j = 0; j < 11; j++) {
if
(chessArr1[i][j] != 0) {
count++;
sparesArr[count][0] = i;
sparesArr[count][1] = j;
sparesArr[count][2] = chessArr1[i][j];
}
}
}
System.out.println();
System.out.println(
"得到的稀疏数组为:"
);
printArray(sparesArr);
System.out.println();
int chessArr2[][] =
new
int[sparesArr[0][0]][sparesArr[0][1]];
for
(int i = 1; i < sparesArr.length; i++) {
chessArr2[sparesArr[i][0]][sparesArr[i][1]] = sparesArr[i][2];
}
System.out.println();
System.out.println(
"恢复后的二维数组"
);
printArray(chessArr2);
}
public static void printArray(int[][] array) {
for
(int i = 0; i < array.length; i++) {
for
(int j = 0; j < array[0].length; j++) {
System.out.printf(
"%d\t"
, array[i][j]);
}
System.out.println();
}
}