public class Holle {
public static void main(String[] args) {
//创建数组
int [][] array = new int[11][11];
array[1][2] = 1;
array[2][3] = 2;
//输出原始的数组
System.out.println("输出原始数组");
for (int [] ints: array){
for (int anint: ints){
System.out.print(anint+" ");
}
System.out.println();
}
//转换为稀疏数组
//获取有效值的个数
int sum=0;
for (int i=0; i< array.length; i++){
for(int j=0; j< array[i].length; j++){
if(array[i][j]!=0){
sum++;
}
}
}
System.out.println("有效值的个数为:"+sum);
//创建一个稀疏数组
int[][] array1 = new int[sum+1][3];
array1[0][0]= array.length;
array1[0][1]= 11;
array1[0][2]= sum;
//遍历二维数组,将非零的值存放到稀疏数组中
int count=0;
for (int i=0; i< array.length; i++){
for (int j=0; j<array[i].length; j++){
if (array[i][j]!=0){
count++;
array1[count][0]=i;
array1[count][1]=j;
array1[count][2]=array[i][j];
}
}
}
System.out.println("输出稀疏数组");
for (int [] ints: array1){
for (int anint: ints){
System.out.print(anint+"\t");
}
System.out.println();
}
System.out.println("还原数组");
int[][] array2 = new int[array1[0][0]][array1[0][1]];
for (int i=1; i< array1.length; i++){
array2[array1[i][0]][array1[i][1]]=array1[i][2];
}
for (int [] ints: array2){
for (int anint: ints){
System.out.print(anint+" ");
}
System.out.println();
}
}
}