稀疏数组

public static void main(String[] args) {
        //创建一个*的棋盘,其中代表黑子,2代表白子,其余用零待敌
        int[][] array1 = new int[11][11];
        array1[1][2] = 1;
        array1[2][3] = 2;
        System.out.println();
        for (int[] ints : array1) {
            for (int anint : ints) {
                System.out.print(anint + "\t");
            }
            System.out.println();
        }
        //遍历二维数组,得到非0的个数
        int sum =0;//纪律非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[][] array2=new int[sum+1][3];
        array2[0][0]=11; //第一行第一列,存多少行
        array2[0][1]=11; //第一行第二列,存多少列
        array2[0][2]=sum;  //第一行第三列非0的个数
        //遍历二维数组,将非0的值存放到稀疏数组中
        int count=0;
        for (int i = 0; i < array1.length; i++) {
            for (int j = 0; j < array1[i].length; j++) {
                if (array1[i][j]!=0){
                    count++; //当值非0,非0的个数加1
                    array2[count][0]=i;
                    array2[count][1]=j;
                    array2[count][2]=array1[i][j];
                }

            }

        }
        //输出稀疏数组
        System.out.println("输出稀疏数组");
        for (int i = 0; i < array2.length; i++) {
            System.out.println(array2[i][0]+"\t"+array2[i][1]+"\t"+array2[i][2]);
        }
    }

 

posted @ 2020-08-07 20:12  兔兔1234  阅读(92)  评论(0)    收藏  举报