Android: Array Map & SparesArray 의 기본 사용 및 주요 사항

2456 단어 Android 성능
발생 원인ArrayMapAndroid 메모리 최 적 화 를 위해 설 계 된 것 으로 Java API 중의 HashMap 데이터 구 조 를 대체 하 는 데 사용 된다. key 유형 int 을 더욱 최적화 하기 위해 안 드 로 이 드 는 자동 포장 과정 을 피 할 수 있 는 효율 적 인 데이터 구조 map 를 다시 제공한다.SparseArray 유형 이 다른 유형 이 라면 사용 할 수 있 습 니 다 key.ArrayMap 의 검색 과 삽입 시간 복잡 도가 O (1) 인 대 가 는 대량의 메모 리 를 희생 하 는 것 이다. HashMapArrayMap 의 성능 은 SparesArray 보다 약간 낮 지만 메모 리 를 더욱 절약 하 는 것 이다.
2. Array Map 의 사용
3. sparesArray 사용
4. 장단 점 및 사용 주의:
(1) 주의사항:
1. 최저 HashMap 사용 minSdkVersion, ArrayMap 요구 가 가장 낮은 (포함) SparseArray 는 19
2. 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 를 확대 한다.

  • 결점.
  • 대량의 (1000 초과) 원 소 를 저장 할 때 비교적 오래 걸린다
  • 요 소 를 찾 거나 삽입 할 요소 의 위 치 를 확인 할 때 2 분 으로 찾 습 니 다. 요소 가 많 을 때 시간 이 오래 걸 립 니 다
  • 빈번하게 용량 을 늘 리 고 축소 하면 대량의 복제 작업 이 발생 할 수 있다
  • HashMap 확장 과 수축 시 이동 요소 가 필요 하고 확장 시 용량 변화 가 ArrayMap 보다 작 으 며 확장 과 수축 의 빈도 가 높 을 수 있 으 며 요소 의 수량 이 너무 많 을 때 요소 의 이동 은 성능 에 영향 을 줄 수 있다.

  • 2.SparseArray
    장점.
  • 그의 세 형 제 를 통 해 원 소 를 액세스 할 때의 포장 과 분해
  • 를 피 할 수 있다.
  • 빈번 한 삽입 삭제 작업 효율 이 높다 (지연 삭제 메커니즘 이 효율 을 확보한다)
  • 정기 적 으로 gc 함 수 를 통 해 메모 리 를 정리 하고 메모리 이 용 률 이 높다
  • 포기 ArrayMap 찾기, 2 점 찾기, 경 량
  • 결점.
  • 2 분 검색 의 시간 복잡 도 HashMap, 빅 데 이 터 량 의 경우 효율 이 높 지 않다 hash
  • O(log n)HashMap 또는 key
  • 일 수 밖 에 없다.
  • 입 출금 int 은 지 정 된 유형 으로 예 를 들 어 long, value, boolean 자동 포장 과 분해 문 제 를 피 할 수 있다.
  • 좋은 웹페이지 즐겨찾기