[Map] HashMap vs. TreeMap vs. LinkedHashMap |
-
HashMap
Key 는 equals 와 hashCode 가 구현되어 있어야 한다.
O(1) time complexity
-
TreeMap ( SortedMap )
Key 가 Red-black tree structure 를 사용하여 ordering 되어 있는 형태의 Map
Key 가 Comparable 을 구현해야 한다. 그래야 tree 에서 비교를 할테니... ( 참고로 String 은 Comparable 하다 )
Key 가 정렬되어 있다는 의미는 keys() 나 entrySet() 을 가지고 왔을 때, Comparable.compare 에 의한 정렬결과 순으로 collection 이 구성된다는 것이다.
Tree 를 사용했다는 것은 Key 가 ordering 된다는 것도 있지만, Hierarchy 가 있는 형태일 때 좋다는 것.
O( log(n) ) time complexity
-
LinkedHashMap
HashMap 과 동일하나 Insertion order 를 보장해준다.
keys(), values(), entrySet() 등을 통해 collection 을 가지고 왔을 때 Insertion 순으로 collection 이 구성된다는 것이다.
입력된 순서가 있기 때문에 removeEldestEntry() 류의 메소드를 통해 LRU Cache 등을 구성하기에도 괜찮다.
O(1) time complexity
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Android] SMS Retriever API - SMS 권한 없이 인증번호 읽어오기! (0) | 2019.01.18 |
---|---|
연락처 계정 생성시 OEM 에서 연락처에서 추가/편집 가능한 Field 정의 (0) | 2019.01.17 |
[android] SQLiteDatabase 와 SQLiteOpenHelper Test (0) | 2019.01.10 |
[android] Low Memory Kill ( LMK ) (0) | 2019.01.09 |
[android] 언어 변경(language change)했을 때 동작 실험 (0) | 2019.01.08 |
댓글