美文网首页
SparseArray与SparseArrayCompat区别

SparseArray与SparseArrayCompat区别

作者: IsCoding | 来源:发表于2018-01-30 09:00 被阅读0次

    了解SparseArrayCompat需要先了解SparseArray

    SparseArrayCompat 是什么?目前网上介绍这个类的很少。几乎也找不到SparseArray与SparseArrayCompat的区别,这里先介绍SparseArray,懂了这个之后就知道SparseArrayCompat是什么东西了。

    什么是SparseArray

    SparseArray是Android独有的类,在标准的JDK中不存在这个类。
    我们可以把它理解为一个key是integer类型的HashMap。

    为什么使用SparseArray

    在Android中还是有很多手机配置一般的。在这个CPU过剩的时代,影响手机性能的很可能就是内存了。所以Android提供了一个SparseArray类来替代HashMap,SparseArray要比 HashMap 节省内存,某些情况下比HashMap性能更好。SparseArray删除数据的时候也做了优化。因为这个是Android独有的,所以可以专门对Android做出优化,但是Java平时是不会这么做的。所以在Android开发中,我们进来使用SparseArray替代HashMap。能获取更好的性能。

    什么时候使用SparseArray

    这个需要注意一点,SparseArray可以理解一个key是integer类型的Map。所以一般我们都是在key为int类型的时候才使用。

    总结

    SparseArray是android里为这样的Hashmap而专门写的类,目的是提高效率,其核心是折半查找函数。在Android中,当我们需要定义HashMap时,我们可以使用如下的方式来取得更好的性能.
    比如

    HashMap<Integer,Object> hashMap = new HashMap();
    //替换为
    SparseArray,<Object> sparseArray = new SparseArray();
    

    SparseArrayCompat是什么

    大家估计对SparseArray应该有个初步的了解,想要更细致的了解,可以百度下,这里不去扩展了,这里要说下SparseArray的一个很重要的限制,就是SparseArray只能在API19以上的系统里面 才有这个类,也就是Android4.4以上。那么如果你的手机运行的是低版本的系统,就没办法使用了,有点类似Android3.0开始才出的Fragment,不过Fragment被加入到了V4包,这样就可以在低版本使用了,SparseArray既然能提高性能,肯定是希望能在更古老的手机使用了,那些手机系统一般版本也比较低,所以Android为我们提供了一个兼容的类SparseArrayCompat,使用这个可以兼容更低的版本。那么我们就知道了SparseArrayCompat是什么了。SparseArray 是parseArrayCompat的兼容版本,可以在更低版本的Android运行。我们可以把SparseArray 和 parseArrayCompat理解为一个东西。

    联系方式

    QQ群 121915371 (建议加群咨询)
    QQ号 1400100300 (个人QQ)

    版权声明:本文为博主原创文章,转载请注明出处。版权归www.iscoding.com所有

    相关文章

      网友评论

          本文标题:SparseArray与SparseArrayCompat区别

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