Android: Array Map & SparesArray 의 기본 사용 및 주요 사항
2456 단어 Android 성능
ArrayMap
는 Android
메모리 최 적 화 를 위해 설 계 된 것 으로 Java
API
중의 HashMap
데이터 구 조 를 대체 하 는 데 사용 된다. key
유형 int
을 더욱 최적화 하기 위해 안 드 로 이 드 는 자동 포장 과정 을 피 할 수 있 는 효율 적 인 데이터 구조 map
를 다시 제공한다.SparseArray
유형 이 다른 유형 이 라면 사용 할 수 있 습 니 다 key
.ArrayMap
의 검색 과 삽입 시간 복잡 도가 O (1) 인 대 가 는 대량의 메모 리 를 희생 하 는 것 이다. HashMap
와 ArrayMap
의 성능 은 SparesArray
보다 약간 낮 지만 메모 리 를 더욱 절약 하 는 것 이다.2. Array Map 의 사용
3. sparesArray 사용
4. 장단 점 및 사용 주의:
(1) 주의사항:
1. 최저
HashMap
사용 minSdkVersion
, ArrayMap
요구 가 가장 낮은 (포함) SparseArray
는 192.
minSdkVersion
인터페이스 hashMap
, Serializable
가 실현 되 지 않 았 기 때문에 직접 직렬 화 할 수 없다.3. 저장 요소 개수 < 1000 에 적용,
(2) 장단 점
1. ArrayMap
ArrayMap
의 디자인 은 메모 리 를 더욱 효율적으로 이용 하기 위해 다음 과 같은 몇 가지 에 효율적으로 나타난다.장점.
SparseArray
더 적은 저장 장치 저장 요 소 를 사용 합 니 다 ArrayMap
사용 ArrayMap
유형의 배열 저장 ArrayMap
, 사용 int
유형의 배열 저장 hash
키 쌍 은 Object
사용 k-v
저장 노드 에 비해 HashMap
한 요 소 를 저장 하 는 메모리 가 더 작다.Node
용량 을 늘 릴 때 용량 변화 가 더 적다. ArrayMap
용량 을 늘 릴 때 용량 을 배로 늘 리 고 ArrayMap
용량 을 늘 릴 때 원소 개수 가 8 을 넘 으 면 최대 1 / 2 를 확대 한다.결점.
HashMap
확장 과 수축 시 이동 요소 가 필요 하고 확장 시 용량 변화 가 ArrayMap
보다 작 으 며 확장 과 수축 의 빈도 가 높 을 수 있 으 며 요소 의 수량 이 너무 많 을 때 요소 의 이동 은 성능 에 영향 을 줄 수 있다.2.SparseArray
장점.
ArrayMap
찾기, 2 점 찾기, 경 량 HashMap
, 빅 데 이 터 량 의 경우 효율 이 높 지 않다 hash
O(log n)
는 HashMap
또는 key
int
은 지 정 된 유형 으로 예 를 들 어 long
, value
, boolean
자동 포장 과 분해 문 제 를 피 할 수 있다.