### 稀疏二维数组的存储与复原
package sparseArray;
public class SparseArray {
public static void main(String[] args) {
int arraySize=11;
int[][] prime=new int[arraySize][arraySize];
prime[1][1]=1;
prime[2][2]=2;
prime[3][3]=1;
prime[4][4]=2;
System.out.println("原始二维稀疏数组");
for(int[] row:prime) {
for(int val:row) {
System.out.printf("%d\t",val);
}
System.out.println();
}
int num=0;
for(int[] row:prime) {
for(int val:row) {
if(val!=0) {
num+=1;
}
}
}
int[][] sparseArray=new int[num+1][3];
sparseArray[0][0]=arraySize;
sparseArray[0][1]=arraySize;
sparseArray[0][2]=num;
int count=0;
for(int i=0;i<arraySize;i++) {
for(int j=0;j<arraySize;j++) {
if(prime[i][j]!=0) {
++count;
sparseArray[count][0]=i+1;
sparseArray[count][1]=j+1;
sparseArray[count][2]=prime[i][j];
}
}
}
System.out.println("输出创建的二位稀疏矩阵");
for(int[] row:sparseArray) {
for(int val:row) {
System.out.printf("%d\t",val);
}
System.out.println();
}
int[][] restore=new int[sparseArray[0][0]][sparseArray[0][1]];
for(int i=1;i<=sparseArray[0][2];i++) {
restore[sparseArray[i][0]-1][sparseArray[i][1]-1]=sparseArray[i][2];
}
System.out.println("输出恢复的二维稀疏矩阵");
for(int[] row:restore) {
for(int val:row) {
System.out.printf("%d\t",val);
}
System.out.println();
}
}
}