ArrayMap:
- 繼承至Map的 key- value的數(shù)據(jù)集合宪塔。
- 相比于HaspMap 它占用的內(nèi)存較小性芬,內(nèi)存使用率更高埂蕊,效率相對HaspMap要慢揪利,因?yàn)閮?nèi)部使用二分查找。
- 缺點(diǎn)是對于數(shù)據(jù)量大的時(shí)候笛坦,其運(yùn)行效率會變緩存区转。
- 會自動根據(jù)其數(shù)據(jù)量大小增加或減少容量。
-
內(nèi)部有兩個(gè)數(shù)組版扩,一個(gè)用于存儲hash值蜗帜, 一個(gè)用于存儲數(shù)據(jù)object。二分查找是根據(jù)hash值的大小排序的资厉,因此,下圖中的mHashes必定是一個(gè)有序的數(shù)據(jù)蔬顾。因此它在增刪的時(shí)候宴偿,會重新排序湘捎,效率低。
在Android Performance Pattern中窄刘,官方給出的使用場景為窥妇,item數(shù)量小于1000,尤其是插入數(shù)據(jù)和刪除數(shù)據(jù)不頻繁的情況娩践。參考:https://androidandbrillo.wordpress.com/2015/09/07/android-performance-patterns-arraymap-vs-hashmap/
ArrayMap 的根本目的是旨在提高數(shù)據(jù)量小的情況下提高內(nèi)存使用率活翩。