首页天道酬勤初始化一个2行3列的二维数组,数据结构多维数组

初始化一个2行3列的二维数组,数据结构多维数组

张世龙 05-12 11:04 40次浏览

稀疏数组

使用场景某些特定情况下(棋盘,地图等等),可能二维数组中存在很多无意义的数据,我们可以将它转化为稀疏数组,来节省存储空间

以下是http://www.Sina.com/- http://www.Sina.com /的整个进程的代码实现:

package com.chuang; publicclasssparsearray { publicstaticvoidmain (字符串[ ] args ) /创建原始二维阵列的11* 11 //0表示没有黑点1,黑点2表示蓝色子int [ ] [ chessArr1[2][3]=2; chessArr1[3][4]=2; //输出原始二维阵列System.out.println (原始二维阵列1 ) ); for(int[]row:chessarr1) for ) intitem:row ) system.out.printf('%d\t ',item ); } System.out.println (; //创建稀疏数组int sum=0; //用于计数原始数组中有多少有意义的数字//遍历原始数组来计数有效数字个数的for(intI=0; i11; I ) for(intj=0; j11; j () if ) chessarr1[I][j]!=0) sum; } } int [ ] [ ] sparse arr=new int [ sum1] [3]; //稀疏阵列的第一行记录原始阵列的矩阵sum sparseArr[0][0]=11; sparseArr[0][1]=11; sparseArr[0][2]=sum; //为稀疏数组分配for (inti=0; i11; I ) for(intj=0; j11; j () if ) chessarr1[I][j]!=0) { sparseArr[i][0]=i; sparseArr[i][1]=j; sparse arr [ I ] [2]=chessarr1[ I ] [ j ]; } (system.out.println ((=====================) ) ) ) isum 1; I ) system.out.printf (' % d\t % d\t % d\t ',sparseArr[i][0],sparseArr[i][1],sparsearr[I]。 System.out.println (; //将稀疏数组转换为原始数组int [ ] [ ] chessarr2=new int [ sparse arr [0] [0] [ sparse arr [0] [1]; //给原始数组2分配for (inti=1; isum 1; I ) { chessarr2(稀疏arr [ I ] [0] )稀疏arr [ I ] [1]=稀疏arr [ I ] [2]; } system.out.println ((=========================() ) ) ) ) } System.out.println (; }}运行结果:

二维数组变为一维数组的例子,定义二维数组的三种方式