"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > HashMap, LinkedHashMap 또는 TreeMap: 어떤 Java 맵을 사용해야 합니까?

HashMap, LinkedHashMap 또는 TreeMap: 어떤 Java 맵을 사용해야 합니까?

2024년 12월 21일에 게시됨
검색:106

HashMap, LinkedHashMap, or TreeMap: Which Java Map Should I Use?

Java에서 HashMap, LinkedHashMap 및 TreeMap 간의 차이점 이해

HashMap, LinkedHashMap 및 TreeMap은 모두 Map 인터페이스의 구현입니다. Java이지만 동작과 사용 사례가 다릅니다. 주요 차이점을 살펴보겠습니다.

1. 반복 순서

  • HashMap: 반복 순서는 보장되지 않습니다. 키와 값은 어떤 순서로든 반환될 수 있습니다.
  • TreeMap: 키와 값은 자연 순서 또는 제공된 비교기에 따라 오름차순으로 정렬됩니다.
  • LinkedHashMap: 키와 값은 원래 순서대로 반환됩니다. 삽입되었습니다.

2. 성능

  • Get/Put/Remove/ContainsKey:

    • HashMap: O(1)
    • TreeMap: O(log(n))
    • LinkedHashMap: O(1)

3. 인터페이스

  • HashMap: 지도 인터페이스만 구현합니다.
  • TreeMap: NavigableMap, Map 및 SortedMap 인터페이스를 구현합니다. .
  • LinkedHashMap: 지도만 구현합니다. 인터페이스.

4. Null 값/키

  • HashMap: null 키와 값을 모두 허용합니다.
  • TreeMap: null 값만 허용합니다.
  • LinkedHashMap: 널 키와 값.

5. 빠른 실패 동작

  • HashMap: 동시 수정이 있는 경우 반복자에 대해 빠른 실패 동작이 보장되지 않습니다.
  • TreeMap: 동일 HashMap.
  • LinkedHashMap: HashMap과 동일합니다.

6. 구현

  • HashMap: 키-값 쌍을 저장하기 위해 버킷을 사용합니다.
  • TreeMap: 레드-블랙 트리를 사용합니다. 정렬된 키를 유지하기 위해.
  • LinkedHashMap: 이중 링크 버킷을 사용합니다. 삽입 순서를 유지합니다.

7. 동기화

  • HashMap: 구현이 동기화되지 않았습니다.
  • TreeMap: 구현이 동기화되지 않았습니다.
  • LinkedHashMap: 구현이 아닙니다. 동기화되었습니다.

8. 해시테이블

해시테이블은 강력하게 동기화되지만 HashMap보다 효율성이 떨어지는 지도 인터페이스의 레거시 구현입니다. 일반적으로 대부분의 사용 사례에서는 Hashtable 대신 HashMap을 사용하는 것이 좋습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3