SparseArray等集合

作为一个Anndroid开发人员来说,我们大多数情况下时使用的Java语言,自然在一些数据的处理时,使用到的集合框架也是Java的,比如HashMap、HashSet等,但是你可否知道,Android因为自身特殊的需求,也为自己量身定制了“专属”的集合类,查阅官方文档,android.util包下,一共捕获如下几个类:SparseArray系列(SparseArray,SparseBooleanArray,SparseIntArray,SparseLongArray,LongSparseArray),以及ArrayMap、ArraySet,我相信即便没学过,看到这些类名,基本也能猜到一些它们的区别和用法了,下面我们就来好好学一学它们,开始吧
 

使用方法
按照我的习惯,我觉得不管学什么,首先需要的就是会用“它”,感受一下它的用法,其次才能再谈理论上的东西,下面我们先来学一学怎么使用。
首先我们看一下SparseArray的使用方法

        //声明
        SparseArray<String> sparseArray= new SparseArray<>();
        //增加元素,append方式
        sparseArray.append(0, "myValue");
        //增加元素,put方式
        sparseArray.put(1, "myValue");
        //删除元素,二者等同
        sparseArray.remove(1);
        sparseArray.delete(1);
        //修改元素,put或者append相同的key值即可
        sparseArray.put(1,"newValue");
        sparseArray.append(1,"newValue");
        //查找,遍历方式1
        for(int i=0;i<sparseArray.size();i++){
            Log.d(TAG,sparseArray.valueAt(i));
        }
        //查找,遍历方式2
        for(int i=0;i<sparseArray.size();i++){
            int key = sparseArray.keyAt(i);
            Log.d(TAG,sparseArray.get(key));
        }
OK,很正常的使用方法,和hashmap 等数据结构基本一样。
唯一不同的就是key和value的类型,hashmap的key值和value值为泛型,但是SparseArray 的key值只能为int 类型,value值为Object类型,看到这,你可能会觉得很奇怪,这不是在使用上受到了很大的约束嘛,这样约束的意义何在呢?

先别急,我们看看剩下的SparseArray 的双胞胎兄弟姐妹们,LongSparseArray 和SparseArray 相比,唯一的不同就是key值为long,所以,既然为long ,那么相对SparseArray 来说,它可以存储的数据元素就比SparseArray 多。

顺带温习一下,int的范围是-2^31 到 231-1,而long是-263 到 2^63-1

然后轮到了SparseBooleanArray,SparseIntArray,SparseLongArray,这三兄弟相对SparseArray 来说就是value值是确定的,SparseBooleanArray的value固定为boolean类型,SparseIntArray的value固定为int类型,SparseLongArray的value固定为long类型。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值