/**
* @author yuanjin.ye
* @version 创建时间:2019/11/19
* @description:
*/
public class XSArrayDemo {
public static void main(String[] args) {
//1、定义写一个棋盘,11*11的棋盘
int[][] chess = new int[11][11];
for (int i = 0; i <chess.length ; i++) {
for (int j = 0; j <chess[i].length ; j++) {
chess[i][j] = 0;
}
}
for (int[] ches: chess) {
for (int ch:ches) {
System.out.print(ch+"\t");
}
System.out.println();
}
//声明一个有效值计数器
int sum =0;
//设置有效数字
chess[1][2] = 1;
chess[2][3] = 2;
chess[3][2] = 1;
System.out.println("------------赋值后------------");
for (int[] ches: chess) {
for (int ch:ches) {
if(ch!=0) sum++;
System.out.print(ch+"\t");
}
System.out.println();
}
//2、定义一个稀疏数组
/**
* col row val
* 11 11 3
* 1 2 1
* 2 3 2
* 3 2 1
*/
int[][] xsArr = new int[sum+1][3];
xsArr[0][0] = 11;
xsArr[0][1] = 11;
xsArr[0][2] = sum;
int count = 0;
for (int i = 0; i <chess.length ; i++) {
for (int j = 0; j <chess[i].length ; j++) {
if(chess[i][j]!=0){
count++;
xsArr[count][0] = i;
xsArr[count][1] = j;
xsArr[count][2] = chess[i][j];
}
}
}
System.out.println("---------------- ----------------");
System.out.println("----------------稀疏数组----------------");
System.out.println("---------------- ----------------");
for (int[] xs:xsArr) {
for (int x:xs) {
System.out.print(x+"\t");
}
System.out.println();
}
int[][] chess2 = new int[xsArr[0][0]][xsArr[0][1]];
for (int i = 1; i <xsArr.length ; i++) {
for (int j = 0; j <3; j++) {
chess2[xsArr[i][0]][xsArr[i][1]] = xsArr[i][2];
}
}
System.out.println("------------- 回显数组 ------------");
for (int[] ches: chess2) {
for (int ch:ches) {
System.out.print(ch+"\t");
}
System.out.println();
}
}
}
运行结构