SparseArray 是Android 特有的api,標準jdk里面沒有這個類,在Android內部用來替代HashMap這種形式;SparseArray更加節省內存的使用,SparseArray也是以key和value對數據進行保存的.使用的時候只需要指定value的類型即可.并且key不需要封裝成對象類型.
HashMap是數組和鏈表的結合體,被稱為鏈表散列.
SparseArray是單純數組的結合.被稱為稀疏數組,對數據保存的時候,不會有額外的開銷.結構如下:
SparseArray每次的插入方式都需要調用二分查找.因此這樣在倒序插入的時候會導致情況非常的糟糕,效率上絕對輸給了HashMap
數據量100000條時SparseArray要比HashMap要節約27%的內存.也就是以犧牲效率的代價去節約內存空間.我們知道Android對內存的使用是極為苛刻的.堆區允許使用的最大內存僅僅16M.很容易出現OOM現象的發生.因此在Android中內存的使用是非常的重要的