在Android开发中我们大部分时候都是使用Java语言中的HashMap来存储数据,但是当开发Android应用的时候,可能效率并不好,因此Android官方实现了几个适合在Android平台使用的集合类。那么这些Android自己实现的集合类有什么优势呢?下面我们逐一看一下。

ArrayMap

        ArrayMap arrayMap = new ArrayMap<>();        arrayMap.put("a","A");        arrayMap.put("b","B");        arrayMap.put("a","A");        arrayMap.put("c","C");        Log.i(TAG, "init: "+arrayMap.toString());

ArrayMap的使用跟HashMap是一样的。当数据结构为的时候,都可以使用ArrayMap替代。
但是相较于HashMapArrayMap在Android中也不总是高效的。当数据量大了(数百)之后,其性能就会下降至少50%。所以,当数据量小的时候,使用ArrayMap效率还是蛮高的,比较是官方专门为Android写的。

SparseArray

在开发中有时我们也会看到Lint让我们使用其他的如SparseArray等替换的提示。 这个时候替换的话一般会得到很好的性能优化。

SparseArray也是用一个对,但是跟ArrayMap不同的是,这里的Key是Integer.并且省去了自动装箱的操作。提高了存取效率。使用如下

        SparseArray sparseArray = new SparseArray<>();        sparseArray.put(1,"A");        sparseArray.put(2,"B");        sparseArray.put(3,"C");        sparseArray.put(2,"D");        Log.i(TAG, "init: "+sparseArray.toString());

其他

  • SparseIntArray:当map的结构为Map的时候使用,效率较高。

  • SparseBooleanArray: 当map的结构为Map的时候使用,效率较高。

  • SparseLongArray: 当map的结构为Map的时候使用,效率较高。

  • LongSparseArray: 当map的结构为Map的时候使用,效率较高。

  • ArraySet:和ArrayMap的目的类似,用来提高HashSet的效率。使用方法跟HashSet类似

最后说一点,对于android.util包下的这些容器类,是在API 19以后才引入的,要想在之前的版本中使用需要引用android.support.v4.util包下的相应容器类。

更多相关文章

  1. 第五章 以数据为中心—数据存取(2)
  2. Android(安卓)SharedPreferences详解
  3. Android之Content Providers
  4. android 关系型数据库 SQLiteDatabase的 增 删 改 查
  5. android创建sqlite数据库及在SD卡上创建数据库(一)
  6. Android(安卓)弹出菜单示例(Android(安卓)sample API22)
  7. 联系人结构
  8. Android——SimpleAdapter的简单使用
  9. Andorid入门学习笔记整理(一)

随机推荐

  1. MySQL 消除重复行的一些方法
  2. mysql查询表里的重复数据方法
  3. Mysql一些复杂的sql语句(查询与删除重复
  4. Mac下安装mysql5.7.18的详细步骤
  5. MySQL中的唯一性约束与NULL详解
  6. MySQL产生随机数并连接字符串的方法示例
  7. MySQL数据库操作的基本命令
  8. MySQL常用的建表、添加字段、修改字段、
  9. Mac下MySQL安装配置教程
  10. 配置Mysql主从服务实现实例