[꼼꼼한 개발자] 꼼코더

[JAVA] - HashMap, LinkedHashMap, TreeMap, Hashtable 차이점 간단하고 쉽게 이해하기 본문

간단하고 쉽게/JAVA

[JAVA] - HashMap, LinkedHashMap, TreeMap, Hashtable 차이점 간단하고 쉽게 이해하기

꼼코더 2022. 12. 22. 01:14
반응형

🙋🏻‍♂️ 간단정리 (활용조건)

  • HashMap : 일반적으로 사용 일반적으로 빠르고 오버헤드가 적기 때문.
  • LinkedHashMap : 삽입한 순서대로 키 정보를 얻고 싶을때 사용
  • TreeMap : 정렬된 순서대로 키 정보를 얻고 싶을때 사용
  • Hashtable : 병렬 처리를 하면서 자원의 동기화를 고려해야 하는 상황일 때 사용.

🔑 HashMap

  • 검색과 삽입 :  O(1) 시간이 소요.
  • 키의 순서 :  무작위.
  • 구현 : 연결리스트로 이루어진 배열.
  • null :  key와 null value를 모두 허용.

↔️ LinkedHashMap

  • 검색과 삽입 : O(1) 시간이 소요.
  • 키의 순서 : 삽입한 Key의 순서대로 정렬.
  • 구현 : 양방향 연결 버킷(double-linked bucket)으로 구현되어 있다.

🌳 TreeMap

  • 검색과 삽입 : O(log N) 시간이 소요.
  • 키의 순서 : 삽입한 Key의 sort순.
    • 즉, 는 반드시 Comparable 인터페이스를 구현하고 있어야 한다..
  • 구현 :  레드-블랙 트리로 구현.

🚂 Hashtable

  • 검색과 삽입 : O(1) 시간이 소요된다.
  • 키의 순서 :  무작위.
  • 구현 :  연결리스트로 이루어진 배열.
  • null :  key와 null value 모두 불허
  • 동기화를 지원한다. (thread safe)

💡 따라서 Hashtable은 멀티스레드 환경에서 동작가능하며, 동기화를 지원하기 때문에 HashMap보다 느리다.

 

 

 

 

참고 : https://dar0m.tistory.com/200

 

 

 

 

 

Comments