稀疏数组可以看作是普通数组的压缩,当一个数组中大部分元素为0或同一个值时,可用稀疏数组来保存该数组。

由此可以发现,当一个数组上出现大量无用的数组时,我们可以使用一些方法将其压缩成稀疏数组进行存储,等到使用的时候再进行解压还原。

最经典的案例便是五子棋了,如果要实现退回,保存当前五子棋进度,加载五子棋进度的时候,原先的数组就会显得臃肿,这时候稀疏数组就可以派上用场了。

稀疏数组的压缩方法:

如果原始数组是11*11的一个二维数组,里面的有效值个数有三个,

那么转为稀疏数组后,将会变成一个4*3的稀疏数组。

由此可以分析出来,将二维数组转换成为稀疏数组只需要这么几步就可以成功。

遍历原数组,得到原数组中有效值的个数num

创建一个稀疏数组,大小为(num+1)*3

System.out.println("================ 分割线 ================");

数据结构正是我薄弱的地方,在这一方面正好重新开始进行学习。