ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

稀疏数组的读取与还原

2022-05-02 18:31:06  阅读:148  来源: 互联网

标签:10 读取 int array2 array1 稀疏 ++ 数组


public class Demo08 {
    public static void main(String[] args) {
        //创建一个10*10的二维数组,最终将该数组对应的稀疏数组打印出来
        int[][] array1 = new int[10][10];
        array1[2][3] = 2;
        array1[4][2] = 13;
        array1[3][6] = 25;

        //将二维数组打印出来
        for (int i = 0; i < array1.length; i++) {
            for (int j = 0; j < array1[i].length; j++) {
                System.out.print(array1[i][j]+" ");
            }
          System.out.println();
        }

        //获取稀疏数组的有效值个数
        int sum = 0;
        for (int i = 0; i < array1.length; i++) {
            for (int j = 0; j < array1[i].length; j++) {
                if (array1[i][j] != 0) {
                    sum+=1;
                }
            }
        }
        System.out.println("稀疏数组的有效个数sum值为"+sum);


        //创建一个(sum+1)*3的二维稀疏数组
        //****注意:稀疏数组第一行是(10,10,3):10*10的数组对应稀疏数组的行数为3
        int[][] array2 = new int[sum+1][3];
         array2[0][0] = 10;
         array2[0][1] = 10;
         array2[0][2] = sum;

         int der = 1;
        for (int i = 0; i < array1.length; i++) {
            for (int j = 0; j < array1[i].length; j++) {
                if (array1[i][j] !=0) {
                    array2[der][0] = i;
                    array2[der][1] = j;
                    array2[der][2] = array1[i][j];
                    der++;
                }
            }
        }
        //打印稀疏数组
        for (int i = 0; i < array2.length; i++) {
            System.out.println(array2[i][0]+" "+array2[i][1]
            +" "+array2[i][2]);
        }


        //1.读取稀疏数组
        //2.将稀疏数组还原

        //按照稀疏数组第一行的对应行、列的值创建一个新数组array3
        int[][] array3 = new int[array2[0][0]] [array2[0][1]];
        for (int i = 1; i < array2.length; i++) {
                    array3[array2[i][0]] [array2[i][1]] = array2[i][2];
        }
        //将还原的二维数组打印出来
        //(数组的默认值是0)+
           for (int i = 0; i < array3.length; i++) {
               for (int j = 0; j < array3[i].length; j++) {
                   System.out.print(array3[i][j]+" ");
               }
             System.out.println();
           }
    }
}

 

标签:10,读取,int,array2,array1,稀疏,++,数组
来源: https://www.cnblogs.com/Hangli123/p/16216365.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有