SparseArrayCompat与SparseArray区别

本文详细介绍了Android中SparseArray的用途与优势,对比HashMap,它在内存使用上更为节省,性能更优,尤其适合key为整型的场景。同时,文章还解释了SparseArrayCompat的作用,即为低版本Android系统提供SparseArray的兼容性解决方案。

了解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时,我们可以使用如下的方式来取得更好的性能.
比如

  1. HashMap<Integer,Object> hashMap = new HashMap();
  2. //替换为
  3. 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理解为一个东西。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值