2017-12-19 4 views
0

어딘가에서 HashMap.get(object)을 읽고 TreeMap.get(object)보다 빠릅니다. 하지만 내 질문은 왜 그가 심지어 더 빠른 두 해시 함수를 작동하는 동안 object 검색하는 것입니다.더 빠른 hashmap.get 또는 treemap.get은

+3

'TreeMap'은 해싱을 사용하지 않습니다. – Kayaman

+1

어쩌면 다음을보십시오 : https://stackoverflow.com/questions/7057430/treemap-or-hashmap-faster –

답변

5

TreeMapMap 인터페이스의 이진 검색 트리 구현입니다. 따라서 조회 작업을 수행하려면 O(logN) 시간이 필요합니다.

한편, HashMaphashCode() 키를 사용하여 일정 시간 내에 키가 들어있는 저장소를 찾습니다. 각 bin에는 예상되는 항목 수가 작은 상수로 묶여 있으므로 조회에는 O(1) 시간이 필요하며 보다 빠릅니다. TreeMapComparable or Comparator을 비교하여 어떤 메커니즘을 사용하는 반면만큼이나 간단

1

, HashMapput/get 방법은 hashCode()equals() 및 방법을 사용한다.

한 번 더 포인트,

HashMap 시간이 더 효율적이다. TreeMap은 공간 효율성이 더 좋습니다.