Map <E> 구현 클래스

5BRack·2022년 7월 6일

자바란?

목록 보기
35/42

HashMap <K V> 구현 클래스

HashMap : Hash + Map 의 개념을 가진 자료구조

  • Key값을 HashSet<E>으로 구현한 Map<K V> 객체이다.
  • Key값에 HashSet 특성이 있으므로 입출력 순서는 동일하지 않다.
  • 하위 메서드 사용시, 유효하지 않은 key값을 매개변수로 사용할 때 해당 메서드는 동작하지 않는다.

HashMap 의 중복확인 매커니즘

  1. hashcode() 가 동일한지 확인
  2. equals() 결과가 true 인지 확인
  • 1,2 단계 통과시 동일한 객체로 인식
  • 그 외는 다른 객체로 인식
  • 1단계 hashcode값이 다를 때 2단계는 검사하지 않는다

Hashtable <K V> 구현 클래스

Hashtable : HashMap + 메서드 동기화 개념을 가진 자료구조

  • HashMap 구현 클래스가 단일 쓰레드에 적합한 방면, Hashtable은 멀티 쓰레드에 안정성을 가진다.
  • 주요 메서드가 동기화 메서드로 구현돼 있으므로 멀티 쓰레드에서도 안전하게 동작한다.
  • 동기화 메서드 처리빼고는 HashMap 과 동일하다.

LinkedHashMap <K V> 구현 클래스

LinkedHashMap : HashMap + LinkedHashSet 개념을 가진 자료구조

  • HashMap에서는 Key를 HashSet으로 관리하는 반면, LinkedHashMap은 Key를 LinkedHashSet으로 관리한다.
  • Key의 순서 정보를 갖고 있으므로 Key값을 기반으로 출력되는 LinkedHashMap 또한 순서정보를 갖게 되는 것이다.

TreeMap <K V> 구현 클래스

TreeMap : Map + Tree 의 개념을 가진 자료구조

  • 데이터를 Key값의 크기 순으로 저장한다.
  • 반드시 Key객체는 크기 비교 기준을 갖고 있어야 한다.

TreeMap <K V> 의 크기 비교 메커니즘

  • TreeMap의 크기 비교 메커니즘은 TreeSet 모든 내용이 완벽하게 동일하다.
  • 유일한 차이점은 TreeMap일 때는 Key값의 크기를 비교해 정렬을 수행한다는 점이다.

0개의 댓글