其他分享
首页 > 其他分享> > Android SparseArray和ArrayMap相关总结

Android SparseArray和ArrayMap相关总结

作者:互联网

ArrayMap

二分查找和红黑树性能对比

SparseArray是什么?

SparseArray用法

    private fun test() {
        val intArray = SparseIntArray()
        intArray.put(1, 1)
        intArray.put(2, 2)
        intArray.put(3, 3)
        Log.d(TAG, "test: $intArray")
        intArray.delete(1)
        Log.d(TAG, "test: $intArray")
        intArray.removeAt(1)
        Log.d(TAG, "test: $intArray")
    }
D/MainActivity: test: {1=1, 2=2, 3=3}
D/MainActivity: test: {2=2, 3=3}
D/MainActivity: test: {2=2}

SparseArray特点

  1. 可以存储基本类型,避免装箱开箱
  2. 无需Hash
  3. 根据key进行排序
  4. 增加数据和查找数据基于二分查找
  5. 延迟删除
    并不是在每次remove操作直接移动数组元素,而是用一个删除标记将对应key的value标记为已删除,并标记需要回收,等待下次添加、扩容等需要移动数组元素的地方统一操作,进一步提升性能
  6. 某些场景下可以用SparseArray来代替HashMap<Integer, E>

参考资料

标签:SparseArray,key,int,ArrayMap,value,intArray,put,Android
来源: https://blog.csdn.net/yu540135101/article/details/115769778