java实现二维数组和稀疏数组的转化并保存在文件中去

实现的思路:

java实现二维数组和稀疏数组的转化并保存在文件中去_第1张图片

实现代码:

public class SparseArray_a {
    // 原始的棋盘是有11*11
    // 有两个棋子,在 1,2 和 2,3 这两个地方
    // 其中0 代表空的 1 代表黑子 2 代表 蓝子

    public static void main(String[] args) {
        int chessArr[][] = new int[11][11];
        chessArr[1][2] = 1;
        chessArr[2][3] = 2;
        chessArr[4][6] = 1;
        // 输出原始的二维数组
        for (int[] row:chessArr) {
            for (int data:row ) {
                System.out.printf("%d\t",data);
            }
            System.out.println();
        }

        // 计算得到一共有多少个棋子
        int sum = 0;
        for (int i = 0; i < 11; i++){
            for (int j = 0; j < 11; j++) {
                if(chessArr[i][j] != 0){
                    sum ++;
                }
            }
        }
        System.out.println("一共有棋子:"+sum);
        // 创建稀疏数组
        int chessArr2[][] = new int[sum+1][3];
        chessArr2[0][0] = 11;// 一共是多少行
        chessArr2[0][1] = 11;// 一共是多少列
        chessArr2[0][2] = sum;// 有几个值

        int count = 0;// 计数器
        for (int i = 0; i < 11; i++){
            for (int j = 0; j < 11; j++) {
                if(chessArr[i][j] != 0){
                    count ++;
                    chessArr2[count][0] = i;
                    chessArr2[count][1] = j;
                    chessArr2[count][2] = chessArr[i][j];
                }
            }
        }

        System.out.println("稀疏数组~~~~");
        // 输出稀疏数组
        for (int i = 0; i 其实这一步不需要的,因为默认为0
//        for (int i = 0; i < chessArr2[0][0]; i++){
//            for (int j = 0; j < chessArr2[0][1]; j++) {
//                chessArr3[i][j] = 0;
//            }
//        }
        // 将稀疏数组中的值赋值给二维维数组
        for (int i = 1; i <= sum ; i++) {
           chessArr3[chessArr2[i][0]][chessArr2[i][1]] = chessArr2[i][2];
        }

        // 输出转化以后的二维数组
        for (int[] row:chessArr3) {
            for (int data:row ) {
                System.out.printf("%d\t",data);
            }
            System.out.println();
        }


    }
}

 

你可能感兴趣的:(数据结构)