package datastructure.parsearray;
public class ChessArray {
public static void main(String[] args) {
//初始化数组
int[][] chess = new int[11][11];
chess[1][3] = 1;
chess[2][5] = 2;
for (int[] is : chess) {
for (int i : is) {
System.out.printf("%d\t",i);
}
System.out.println();
}
//统计二维数组中不为0的个数
int count = 0;
for (int i = 0; i < 11; i++) {
for(int j=0;j < 11;j++)
if(chess[i][j]!=0) count++;
}
System.out.println(count);
//转稀疏数组
int sum = 0;
int [][]parseArr = new int[count+1][3];
parseArr[0][0] = 11;
parseArr[0][1] = 11;
parseArr[0][2] = count;
for (int i = 0; i < 11; i++) {
for(int j=0;j < 11;j++)
if(chess[i][j]!=0) {
sum++;
parseArr[sum][0] = i;
parseArr[sum][1] = j;
parseArr[sum][2] = chess[i][j];
}
}
//输出稀疏数组
System.out.println("--------------------");
for (int[] is : parseArr) {
for (int i : is) {
System.out.printf("%d\t",i);
}
System.out.println();
}
//恢复稀疏数组
int [][]parseToBefore = new int[parseArr[0][0]][parseArr[0][1]];
for (int i = 1; i < parseArr.length; i++) {
parseToBefore[parseArr[i][0]][parseArr[i][1]] = parseArr[i][2];
}
//输出恢复数组
System.out.println("--------------------");
for (int[] is : parseToBefore) {
for (int i : is) {
System.out.printf("%d\t",i);
}
System.out.println();
}
}
}