이 게시물에서는 Java와 관련된 해시맵과 트리맵의 차이점을 이해합니다.
해시맵
-
자바의 해시 테이블입니다.
-
'지도' 인터페이스의 구현을 기반으로 합니다.
-
'Map, Cloneable' 및 'Serializable' 인터페이스를 구현합니다.
-
단일 null 키를 허용합니다.
-
또한 여러 null 값을 허용합니다.
-
트리맵에 비해 빠릅니다.
-
이는 'get' 및 'put'과 같은 연산에 대해 일정한 시간 성능, 즉 O(1)을 제공하기 때문입니다.
-
키에 대한 정렬을 수행하지 않습니다.
-
따라서 HashMap에서 이기종 요소를 허용합니다.
-
요소의 순서를 유지하지 않습니다.
-
정렬된 순서의 키-값 쌍이 필요하지 않을 때 사용할 수 있습니다.
-
Object 클래스의 'equals' 메서드를 사용하여 키를 비교합니다.
-
Map 클래스의 'equals' 메소드가 이를 재정의합니다.
-
'KeySet', 'get', 'put'과 같은 기본 메소드만 포함합니다.
트리맵
-
자바에서 사용하는 트리 구조입니다.
-
'지도' 인터페이스의 구현을 기반으로 합니다.
-
'NavigableMap', 'Cloneable' 및 'Serializable' 인터페이스를 구현합니다.
-
null 키를 허용하지 않습니다.
-
여러 null 값을 허용합니다.
-
정렬되기 때문에 동질적인 값을 키로 허용합니다.
-
add(), remove() 및 contains()와 같은 대부분의 작업에 대해 O(log(n))의 복잡성을 제공하므로 HashMap에 비해 느립니다.
-
내부적으로 Red-Black 트리를 사용합니다.
-
레드 블랙 트리는 자체 균형 이진 검색 트리입니다.
-
compareTo() 메소드는 키를 비교하기 위해 사용됩니다.
-
tailMap(), firstKey(), lastKey(), pollFirstEntry(), pollLastEntry()와 같은 많은 기능을 가지고 있습니다.
-
요소는 자연 순서라고도 하는 오름차순으로 정렬됩니다.
-
요구 사항이 정렬된 순서의 키-값 쌍일 때 사용됩니다.