美文网首页
SparseLongArray和LongSparesArray

SparseLongArray和LongSparesArray

作者: 陈大吼 | 来源:发表于2021-03-22 09:23 被阅读0次

SparseArray:key为 int,value 为Object;
SparseIntArray:key 为 int,value 为int;
SparseBooleanArray:key 为 int,value 为 boolean;
SparseLongArray:key 为 int,value 为 long;
LongSparesArray:key 为 long ,value 为Object 。

==>Long 在前,key 为 long;Long 在后,value 为 long

因此,当 key 为 int 或者 long 的时候,可以根据情况使用这三种数据结构来替代 HashMap 。

关于访问性能:
SparseArray相比于HashMap,SparseArray虽然将key和value分成两个数组存储,但是KV对的index是对应相同的,通过二分法查到到key的index之后,可以直接在value数组中找到值。且value数组直接存储的就是目标值,而HashMap中找到的entries对象只是引用,还要再访问一次内存才可以找到value值,相对于CPU缓存(JVM中寄存器)而言,访问内存的成本还是比较高的。这也是SparseArray性能比较高的原因(当然,限于数据量较小时)。
参考https://blog.csdn.net/moter/article/details/80279809

相关文章

网友评论

      本文标题:SparseLongArray和LongSparesArray

      本文链接:https://www.haomeiwen.com/subject/mmzacltx.html