稀疏数组的定义作用和Java代码实现过程及结果

一、什么是稀疏数组

稀疏数组,是一种特殊的二维数组,对二维数组中无意义的数据进行压缩,达到节省空间的目的

二、实现稀疏数组

1、创建一个二维数组并打印出来

 打印出以下结果

 可以看出,对于二维数组中的0同样占据空间,因此可以通过将二维数组转换为稀疏数组保留有效数据节省空间。

2、利用for循环将上面二维数组中的有效数字的个数提取出来

 3、开始创建一个稀疏数组

 

 array01[0][0]对应着二维数组行的个数=11

array01[0][1]对应着二维数组列的个数=11

array01[0][2]对应着二维数组中的值sum(之所以是sum,是因为稀疏数组中只保留了有效的数字,而sum就是之前第二个步骤中获取的有效数字的个数)

4、现在已经有了一个带有表头的稀疏数组,我们将第一个二维数组的数据遍历一遍,将有效数字的行列坐标数据填入稀疏数组中就可以得到完整的稀疏数组了。

 当碰到有效数字(!=0不等于零),定义的count为出现的有效数字的个数

将此时的i(行数据)赋值给稀疏数组array01[count][0]

将j(列数据)赋值给稀疏数组array10[count][1]

将array[i][j]即二维数组中的有效数据的值赋给稀疏数组中

输出为:

 

 这就得到了我们所需的稀疏数组

后面补充的是将稀疏数组还原为二维数组的过程,比较简单,就是将稀疏数组中行列数据进行读取

定义一个新的二维数组并将稀疏数组的行数据array[0][0]和列数据array[0][1]赋值到新的二维数据的行列数据中,并利用一个for循环将稀疏数组中的值array[i][2]赋值给新的二维数组。

 打印出来的结果

 理解不足或者有误之处希望可以提出来加以改正,蟹蟹~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值