Android中一般使用的数据结构有java中的基础数据结构Set, List, Map。还有一些Android中特有的几个,SparseArray(使用Map时Key是int类型的时候可以用这个代替)等。 

HashSet

HashSet是根据hashCode来决定存储位置的,是通过HashMap实现的,所以对象必须实现hashCode()方法,存储的数据无序不能重复,可以存储null,但是只能存一个。

 

List

List比较常用的有ArrayList和LinkedList,还有一个比较类似的Vector。

1.ArrayList

是使用动态数组来实现的,对于数据的随机get和set或是少量数据的插入或删除,效率会比较高。ArrayList是线程不安全的,在不考虑线程安全的情况下速度也比较快的。ArrayList插入数据可以重复,也是有序的,按照插入的顺序来排序。

所以根据序号读取数据只需直接获取数组对应脚表的数据就可以了。 

2.LinkedList 

内部是使用链表的形式来实现的,在插入大量数据的时候效率比较快。 

链表实现的代码,LinkedList根据序号获取数据,是二分进行遍历,如果序号小于总长度的一半,就从链表头部开始往后遍历,直到找到对应的序号。如果序号大于总长度的一半,就从链表尾部往前进行遍历,直到找到对应的序号。拿到数据。

3.Vector

Vector的使用方法和内部实现基本和ArrayList相同,只不过它在add(), remove(), get()等方法中都加了同步。所以它是线程安全的。但是使用效率上就不如ArrayList了。

 

HashMap是基于散列链表来实现的,简单的来说,根据key算出一个hash值,确定一个存放index,但是hash值有可能会冲突重复,所以如果冲突的hash值就需要以链表的形式在同一个index存放了。

更多相关文章

  1. Android中保存数据常用的方法
  2. 3G应用开发之Android(安卓)传智播客 基础知识总结
  3. Android使用KeyStore对数据进行加密
  4. ContentProvider数据模型
  5. Android数据存储方式(二)SharedPreferences(偏好参数保存)
  6. Android中Activity界面展示与跳转及数据传递
  7. 19、从头学Android之Android的数据存储--SharedPreferences
  8. Android--Adapter深入理解及ListView优化
  9. Android(安卓)SQLite使用SQLiteOpenHelper类对数据库进行操作

随机推荐

  1. 【转】Launcher研究之AndroidManifest.xm
  2. android布局文件中的include
  3. Android中关于ComponentName的使用
  4. Android:JNI的简单使用
  5. Android SharedPreferences解析
  6. AndroidのInputFillter之按字符过滤长度,
  7. android 使用gdb调试的方式
  8. Android Testing Fundamentals 1, unit t
  9. [置顶] Android4.2.2自增物理按键(framewo
  10. android SpannableString