稀疏数组是压缩存储大量零值二维数组的结构,首行存原数组行列数和有效值个数,后续每行存一个非零值的行列下标及值,用于节省内存并支持还原。
Java稀疏数组是一种专门用来压缩存储“大量零值或重复值”的二维数组的数据结构。它不保存全部元素,只记录那些真正有意义的非零(或非默认)值及其位置,从而大幅减少内存占用。
它本身就是一个普通的二维int数组,但有固定格式:
比如原数组是11×11,只有[1][2]=1和[2][3]=2两个非零值,那稀疏数组就是4
行3列:
[0][0]=11, [0][1]=11, [0][2]=2
[1][0]=1, [1][1]=2, [1][2]=1
[2][0]=2, [2][1]=3, [2][2]=2
核心就一个字:省。
实际使用分三步:
基本上就这些。不复杂但容易忽略第一行的元数据作用——少了它,根本没法还原原数组。