Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- gitignore
- android network
- convert Intent to string
- Dagger2란
- Service관리
- 오픈소스라이선스
- java callstack
- APK로딩
- RxJava 스터디
- Replaygain
- print callstack
- convert string to intent
- Service 팁
- gitignore작성법
- APK 동적로딩
- BlockingQueue Capacity
- ArrayMap
- 음량표준화
- enum performance
- HashMap vs ArrayMap
- mitmproxy
- MediaDataSource
- so파일 동적로딩
- RxJava Programming
- lufs
- 네트워크 디버깅
- android enum
- corePoolSize
- Intent String 변환
- callstack 출력
Archives
- Today
- Total
목록HashMap vs ArrayMap (1)
일상&개발 로그
[PerformancePattern] ArrayMap vs HashMap
HashMap Key값의 hashCode를 index로 Array에 값을 저장함. 기본적으로 배열이 커야 충돌확률이 줄어들기때문에 큰 배열을 사용한다. 따라서 검색 속도는 O(1)로 매우 빠르다. (hash값이 겹칠 경우 chaining등의 방법을 이용한다.) ArrayMap 두 개의 배열을 이용한다. 1번 배열에는 HashCode를 순서대로 저장한다. 2번 배열에는 Key/Value를 순서대로 저장한다. 값을 가져올 때는 1번 배열을 HashCode로 이진탐색하여 2번 배열의 index를 구한다. 2번 배열의 index 다음 값을 가져온다.(hashIndex * 2, hashIndex * 2 + 1) 검색속도는 O(logN) 이다. 요약: HashMap은 속도는 빠르지만 메모리를 많이 먹는다. Arra..
개발/안드로이드 개발
2017. 5. 22. 21:40