編輯:關於Android編程
官方對ArrayMap也有說明:它不是一個適應大數據的數據結構,相比傳統的HashMap速度要慢,因為查找方法是二分法,並且當你刪除或者添加數據時,會對空間重新調整,在使用大量數據時,效率並不明顯,低於50%。
ArrayMap是犧牲時間換空間
ArrayMap和HashMap的區別
1.存儲方式不同
HashMap內部有一個HashMapEntry
arraymap
他用兩個數組來模擬Map,第一個數組存放存放item的hash值,第二數組是把key,value連續的存放在數組裡,通過先算hash在第一個數組裡找到它的hash index,根據這個index在去第二個數組裡找到這個key-value。
在這裡,在第一個數組裡查找hash index的方法當然是用二分查找啦(binary search)。
如下圖
2.添加數據時擴容時的處理不一樣
hashmap會重新的創建對象,arrayMap是進行copy操作。
3、ArrayMap提供了數組收縮的功能,在clear或remove後,會重新收縮數組,節省空間
4、ArrayMap采用二分法查找
.java代碼如下: package org.lxh.demo; import android.app.Activity; import android
首先建議一個工程 HelloJni如下圖:按照默認的配置下一步,直到完成 。 如下圖操作,點擊windows菜單-》Prefrence菜單:&nbs
在Android系統中提供了多種存儲技術.通過這些存儲技術可以將數據存儲在各種存儲介質上.比如sharedpreferences可以將數據保存著應用軟件的私有存儲區,這些
本實例允許用戶動態添加號碼到黑名單,並實現黑名單來電自動掛斷。程序通過創建PhoneStateListener監聽器來監聽TelephonyManager的通話狀態來實現