咱也不知道,咱也不敢问
SparseArray
long l = System.currentTimeMillis();
SparseArray<String> sparseArray=new SparseArray<>();
for (int i = 0; i < 1000; i++) {
sparseArray.append(i, ""+i);
}
// HashMap<Integer,String> hashMap=new HashMap<>();
// for (int i = 0; i < 1000; i++) {
// hashMap.put(i,i+"" );
// }
long l1 = System.currentTimeMillis();
System.out.println("耗时(ms):"+(l1-l));
然后切换到HashMap
1000条 差不多都 SparseArray在时间上略占优势
试一下他们数据操作
SparseArray
SparseArray<String> sparseArray=new SparseArray<>();
for (int i = 0; i < 1000; i++) {
sparseArray.append(i, ""+i);
}
// HashMap<Integer,String> hashMap=new HashMap<>();
// for (int i = 0; i < 1000; i++) {
// hashMap.put(i,i+"" );
// }
long l = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
sparseArray.setValueAt(i, ""+i+1);
}
long l1 = System.currentTimeMillis();
System.out.println("耗时(ms):"+(l1-l));
然后是 HashMap
移除某一条
SparseArray
HashMap
都差不多不知道他们在找某一条数据的时候快不快
long l = System.currentTimeMillis();
for (int i = 0; i < 300; i++) {
hashMap.get(i+100);
}
long l1 = System.currentTimeMillis();
SpareseArray
HashMap
看来300条数据 不够看
直接1000条遍历吧
HashMap
费了jb半天劲,也不知道哪里好,就是快一点咯
使用场景:key为 Int 直接SparseArray ,,不然要他干啥