稀疏数组

public class array1 {
    public static void main(String[] args) {
        int array[][]=new int[11][11];
        array[3][4]=10;
        array[6][8]=12;
        for(int [] row : array)
        {
            for(int cols: row)
            {
                System.out.printf("%d\t",cols);
            }
            System.out.println();
        }
        int sum=0;
        for(int i=0;i<11;i++)
        {
            for(int j=0;j<11;j++)
            {
                if(array[i][j]!=0)
                {
                    sum++;
                }
            }
        }
        System.out.println(sum);
        int sparse[][] =new int[++sum][3];
        int count=1;
        sparse[0][0]=11;
        sparse[0][1]=11;
        sparse[0][2]=sum;
        for(int i=0;i<11;i++)
        {
            for(int j=0;j<11;j++)
            {
                if(array[i][j]!=0)
                {
                    sparse[count][0]=i;
                    sparse[count][1]=j;
                    sparse[count][2]=array[i][j];
                    count++;
                }
            }
        }
        System.out.println(count);
        for(int i=0;i< sparse.length;i++)
        {
            for(int j=0;j<3;j++)
            {
                System.out.printf("%d\t",sparse[i][j]);
            }
            System.out.println();
        }
        int row=sparse[0][0];
        int clos=sparse[0][1];
        int end[][]=new int [row][clos];
        for(int i=1;i<sparse.length;i++)
        {
            for(int j=0;j<3;j++)
            {
                int a=sparse[i][0];
                int b=sparse[i][1];
                int c=sparse[i][2];
                end[a][b]=c;
            }
            System.out.println();
        }
        for(int i=0;i<row;i++)
        {
            for(int j=0;j<clos;j++)
            {
                System.out.printf("%d\t",end[i][j]);
            }
            System.out.println();
        }
    }
}
posted @ 2022-10-27 20:00  jinnice  阅读(20)  评论(0)    收藏  举报