用java写稀疏数组
作用以及用途: 稀疏数组就是数组中,大部分的元素值 都未被使用(或都为0),在数组中仅有少 部分的空间使用。因此造成内存空间的浪 费,为了解决这问题,并且不影响数组中原 有的元素值,我们采用了一种压缩的方式来 表示稀疏数组的内容。
应用实例
1、使用稀疏数组,来保留类似前面的二维数组(棋盘、地图等等)
2、把稀疏数组存盘,并且可以从新恢复原来的二维数组数
***注意:***黑子代表1,棋是在下在线上的,以其为二维数组,在转化为稀疏数组时,从0开始数起。
转化为稀疏数组图示:
java代码如下:
public class spaceArray{
public static void main(String[] args){
//定义整个棋盘
int cArr1[][] = new int[9][9];
//定义棋盘上的棋子,0表示无棋子,1表示黑子,2表示白子
cArr1[2][1]= 1;
cArr1[3][2] = 1;
cArr1[4][3] = 2;
//输出原始的二维数组
System.out.printIn("原始的二维数组");
/*
* 遍历,定义一维数组,进行遍历为一维数组,后在一维数组中遍历出整形值
*/
for(int[] row : cArr1 ){
for(int data : row){
System.out.printf("%d,\t",data);
}
System.out.println();
}
//二维数组 转 稀疏数组
int sum = 0; //记录黑子和白子的总个数
for(int i=0; i<9; i++){
for(int i=0; j<11; j++){
if(cArr1[i][j] != 0){
sum++;
}
}
}
}
}