Example:
创建一个11X11的二维数组棋盘,随机为棋盘任意位置输入1或2作为白棋或者黑棋,然后输出对应的稀疏数组,并且通过稀疏数组还原初始的二位数组。
package array;
public class XiShuArray {
public static void main(String[] args) {
int[][] arrays = new int[11][11];
arrays[1][3] = 1;
arrays[2][3] = 2;
for (int i = 0; i < arrays.length; i++) {
for (int j = 0; j < arrays[i].length; j++) {
System.out.print(arrays[i][j]+"\t");
}
System.out.println();
}
int sum = 0;
int count = 0;
for (int i = 0; i < arrays.length; i++) {
for (int j = 0; j < arrays[i].length; j++) {
if (arrays[i][j] != 0)
sum++;
}
}
int[][] arraysXiShu = new int[sum+1][3];
arraysXiShu[0][0] = 11;
arraysXiShu[0][1] = 11;
arraysXiShu[0][2] = 2;
for (int i = 0; i < arrays.length; i++) {
for (int j = 0; j < arrays[i].length; j++) {
if (arrays[i][j] != 0){
count++;
arraysXiShu[count][0] = i;
arraysXiShu[count][1] = j;
arraysXiShu[count][2] = arrays[i][j];
}
}
}
System.out.println("==========================================");
for (int i = 0; i < arraysXiShu.length; i++) {
for (int j = 0; j < arraysXiShu.length; j++) {
System.out.print(arraysXiShu[i][j]+"\t");
}
System.out.println();
}
System.out.println("==========================================");
int[][] arrays02 = new int[arraysXiShu[0][0]][arraysXiShu[0][1]];
for (int i = 1; i < arraysXiShu.length; i++) {
arrays02[arraysXiShu[i][0]][arraysXiShu[i][1]] = arraysXiShu[i][2];
}
for (int i = 0; i < arrays02.length; i++) {
for (int j = 0; j < arrays02.length; j++) {
System.out.print(arrays02[i][j]+"\t");
}
System.out.println();
}
}
}