Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 HashMap과 TreeMap의 차이점 - 2020 - 다른 사람


이 게시물에서는 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()와 같은 많은 기능을 가지고 있습니다.

  • 요소는 자연 순서라고도 하는 오름차순으로 정렬됩니다.

  • 요구 사항이 정렬된 순서의 키-값 쌍일 때 사용됩니다.