Android開發之SparseArray簡介

2021-07-03 07:08:14 字數 775 閱讀 3248

1、定義: sparsearray,即稀疏陣列,這個物件和hashmap類似,也是乙個容器,但是它的key是整數型別。

2、特點:sparsearray不需要對key和value進行auto- boxing(將原始型別封裝為物件型別,比如把int型別封裝成integer型別),結構比hashmap簡單(sparsearray內部主要使用 兩個一維陣列來儲存資料,乙個用來存key,乙個用來存value)不需要額外的額外的資料結構(主要是針對hashmap中的hashmapentry 而言的)。

3、優點:

(1)使用sparsearray儲存資料時,需要的記憶體空間比hashmap要小,可以測試同時儲存1w條資料sparsearray和hashmap需要申請的空間。

(2)儲存資料時速度更快,但是使用sparsearray倒序儲存時,速度要比正序儲存要慢上10倍左右,但是和hashmap相比仍然要快一點。逆序儲存變慢的原因是:sparsearray儲存資料時採用了二分查詢演算法進行儲存,在儲存資料的時候需要對key進行從小到大的順序進行排序。採用hashmap儲存資料慢的原因:hashmap採用的是雜湊查演算法對資料進行儲存,哈西儲存演算法是通過hashcode(關鍵碼)來確定節點的儲存位置的。而sparsearray是通過陣列的方式儲存資料的,很明顯hashmap儲存的方式慢很多。

(3)在查詢方面:sparsearray使用的是二分查詢演算法,而hashmap使用的雜湊查詢演算法,一般的情況下sparsearray的查詢效率高些。

總之,在android系統裡面,記憶體是非常金貴的,所以使用sparsearray來儲存資料是一種更好的選擇。

Android開發之簡訊

1.sms主要結構 id 簡訊序號,如100 thread id 對話的序號,如100,與同乙個手機號互發的簡訊,其序號是相同的 person 發件人,如果發件人在通訊錄中則為具體姓名,陌生人為null date 日期,long型,如1346988516,可以對日期顯示格式進行設定 protocol...

Android開發之服務

建立服務時會自動繼承service類,service類中有乙個onbind 方法,這是唯一乙個抽象的方法,然後我們一般需要重寫oncreate onstartcommand ondestory 方法,其中oncreate 只在建立服務的時候才會呼叫,這一點和onstartcommand 是有區別的,...

Android之開發常用顏色

下面是常用的顏色值和名稱 ffffff fffff0 ffffe0 ffff00 fffafa fffaf0 fffacd fff8dc fff5ee fff0f5 ffefd5 ffebcd ffe4e1 ffe4c4 ffe4b5 ffdead ffdab9 ffd700 ffc0cb ffb6...