稀疏数组可以看作是普通数组的压缩,当一个数组中大部分元素为0或同一个值时,可用稀疏数组来保存该数组。
由此可以发现,当一个数组上出现大量无用的数组时,我们可以使用一些方法将其压缩成稀疏数组进行存储,等到使用的时候再进行解压还原。
最经典的案例便是五子棋了,如果要实现退回,保存当前五子棋进度,加载五子棋进度的时候,原先的数组就会显得臃肿,这时候稀疏数组就可以派上用场了。
稀疏数组的压缩方法:
如果原始数组是11*11的一个二维数组,里面的有效值个数有三个,
那么转为稀疏数组后,将会变成一个4*3的稀疏数组。
由此可以分析出来,将二维数组转换成为稀疏数组只需要这么几步就可以成功。
遍历原数组,得到原数组中有效值的个数num
创建一个稀疏数组,大小为(num+1)*3
System.out.println("================ 分割线 ================");
数据结构正是我薄弱的地方,在这一方面正好重新开始进行学习。