Android中几种数据结构使用

Android中几种数据结构使用

分段锁ConcurrentHashMap

// ConcurrentHashMap分段锁的Map,用来替换其他线程安全的Map容器,比如Hashtable和Collections.synchronizedMap
// http://blog.csdn.net/xiaxl/article/details/70025129
ConcurrentHashMap concurrentHashMap = new ConcurrentHashMap();
concurrentHashMap.put("001", "001");
concurrentHashMap.put("002", "002");
concurrentHashMap.put("003", "003");

关于ConcurrentHashMap的原理,可参考ConcurrentHashMap 分段锁

CopyOnWriteArrayList 读写锁

// CopyOnWriteArrayList 读写锁
// http://blog.csdn.net/xiaxl/article/details/70024206
CopyOnWriteArrayList arrayList = new CopyOnWriteArrayList();

关于CopyOnWriteArrayList的原理,可参考CopyOnWriteArrayList读写锁

SparseArray、SparseBooleanArray、SparseIntArray、LongSparseArray、ArrayMap

// http://blog.csdn.net/xiaxl/article/details/77267201
// key 为int,value为Object
SparseArray sparseArray = new SparseArray();
sparseArray.put(1, "001");
sparseArray.put(2, "001");
sparseArray.put(3, "001");

// key 为int,value 为boolean
SparseBooleanArray sparseBooleanArray = new SparseBooleanArray();
sparseBooleanArray.put(1, false);
sparseBooleanArray.put(2, true);

// key 为int,value 为int
SparseIntArray sparseIntArray = new SparseIntArray();
sparseIntArray.put(1, 1);
sparseIntArray.put(2, 2);
sparseIntArray.put(3, 3);

// key 为int,value 为long
SparseLongArray sparseLongArray = new SparseLongArray();
sparseLongArray.put(1, 1);
sparseLongArray.put(2, 2);
sparseLongArray.put(3, 3);

// key 为long,value为Object
android.support.v4.util.LongSparseArray longSparseArray = new android.support.v4.util.LongSparseArray();
longSparseArray.put(1, "001");
longSparseArray.put(2, "002");
longSparseArray.put(3, "003");

// key 为Object,value为Object
android.support.v4.util.ArrayMap arrayMap = new android.support.v4.util.ArrayMap();
arrayMap.put("001", "001");
arrayMap.put("002", "002");
arrayMap.put("003", "003"); 
  

关于SparseArray、ArrayMap 实现原理学习,可参考SparseArray、ArrayMap 实现原理学习

LongArraySet、IntArraySet

// 对于这两个类的由来,可参考以下文章:
// http://blog.csdn.net/xiaxl/article/details/72730795
// 代码转来自facebook的以下连接地址(鉴于打开要,所以代码拷贝到这里):
// https://code.facebook.com/posts/973222319439596
// 内部实现为LongSparseArray
LongArraySet longArraySet = new LongArraySet();
longArraySet.add(1);
longArraySet.add(2);

// 内部实现为SparseArrayCompat
IntArraySet intArraySet = new IntArraySet();
intArraySet.add(1);
intArraySet.add(2);

对于这两个类的由来,可参考以下文章:
http://blog.csdn.net/xiaxl/article/details/72730795
代码转来自facebook的以下连接地址(鉴于打开要,所以代码拷贝到这里):
https://code.facebook.com/posts/973222319439596

你可能感兴趣的:(Android代码)