SparseArray与SparseArrayCompat区别

版权声明:本文为博主原创文章,转载请注明出处。版权归www.iscoding.com所有 https://blog.csdn.net/Androidiscoding/article/details/79201682

###了解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是什么了。SparseArrayCompat是SparseArray 的兼容版本,可以在更低版本的Android运行。我们可以把SparseArray 和 SparseArrayCompat理解为一个东西。

联系方式

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

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

展开阅读全文

没有更多推荐了,返回首页