图结构
稀疏数组的第一个位置存的是有6行,7类,8种数值,其他位置存的才是对应的数据
代码实现
package SparseArray;
public class MySparseArray {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] array1 = new int[11][11];
array1[0][0] = 1;
array1[1][1] = 2;
array1[2][2] = 1;
// showArray(array1);
//统计个数sum
int sum = 0;
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
if(array1[i][j]!=0) {
sum++;
}
}
}
System.out.println(sum);
int [][] sparseArr = new int [sum+1][3];
sparseArr[0][0] = 11;
sparseArr[0][1] = 11;
sparseArr[0][2] = sum;
//存入稀疏数组
int count = 0;
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
if(array1[i][j]!=0) {
count++;
sparseArr[count][0] = i;
sparseArr[count][1] = j;
sparseArr[count][2] = array1[i][j];
}
}
}//外层for
//showArray(sparseArr);
//稀疏-》原始二维数组
int[][] array2 = new int[sparseArr[0][0]][sparseArr[0][1]];
for(int i=1; i<sparseArr.length; i++) {
array2[sparseArr[i][0]][sparseArr[i][1]] = sparseArr[i][2];
}
showArray(array2);
}
public static void showArray(int[][] array1) {
for (int[] arr : array1) {
for (int num : arr) {
System.out.printf("%d\t", num);
}
System.out.println();
}
}
}