省时间的可以直接看这里:简单来说 就是传 正值 的时候 是按照 0 1 2 3 这样子依次往后叠加。但传 负值 的时候,都是往 0 索引添加,之前已经有的就往后面退一位。
首先,开始一长篇废话。我们先给SparseIntArray传正值,先在onCreate里面put正值
然后,我们看一下打印结果(解释一下 indexOfKey 是根据key找出索引 indexOfValue 是根据value找出索引)
ok,结果一切正常,也跟我们平时用的HashMap List一样。
接下来 我们put 负值。 其实也就是在上面所有的数值前加一个 负号。那我们就直接看结果
可以看到,结果完全跟上面的不一样。简单来说, 当传负值的时候,最新的数值总是在 0 索引。