12.稀疏数组

package 作业;

public class 稀疏数组 {
    public static void main(String[] args) {
        //1.创建一个11*11的二维数组棋盘,0为空七,1为黑棋,2为白棋。
        int[][] array = new int[11][11];
        //2.在棋盘上创建两个棋子
        array[1][2] = 1;
        array[2][3] = 2;
        array[3][4] = 1;
        //3.打印棋盘
        for (int[] ints : array) {
            for (int anInt : ints) {
                System.out.print("\t"+anInt);
            }
            System.out.println();
        }
        //4.打印有效数字
        int sum = 0;
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length; j++) {
                if (array[i][j] != 0){
                    sum++;
                }
            }
        }
        System.out.println("\tsum的值为:"+sum);
        //5.创建一个稀疏数组
        int[][] spars_array = new int[sum+1][3];
        spars_array[0][0] = 11;
        spars_array[0][1] = 11;
        spars_array[0][2] = sum;
        //6.将有效值转递给稀疏数组
        int count = 0;
        for (int i = 1; i < array.length; i++) {
            for (int j = 1; j < array.length; j++) {
                if (array[i][j] != 0){
                    count++;
                    spars_array[count][0] = i; //将横坐标传递给稀疏数组下标值
                    spars_array[count][1] = j; //将纵坐标传递给稀疏数组下标值
                    spars_array[count][2] = array[i][j];//将array有效数值传递给稀疏数组下标值
                }
            }
        }
        //7,循环打印稀疏数组
        for (int i = 0; i < spars_array.length; i++) {
                System.out.println("\t"+spars_array[i][0]+"\t"
                        +spars_array[i][1]+"\t"+spars_array[i][2]+"\t");
            }
            System.out.println();

        System.out.println("==============================");
        //8.将稀疏数组值还原
        int[][] array2 = new int[spars_array[0][0]][spars_array[0][1]];

        for (int i = 1; i < spars_array.length; i++) {
            array2[spars_array[i][0]][spars_array[i][1]] = spars_array[i][2];
        }
        //9.打印转换后的数组
        for (int i = 0; i < array2.length; i++) {
            for (int j = 0; j < array2.length; j++) {
                System.out.print("\t"+array2[i][j]);
            }
            System.out.println();
        }
posted @ 2022-04-27 13:56  王小瘦的园子  阅读(16)  评论(0编辑  收藏  举报