HashMap 클래스, Hashtable vs HashMap, HashMap의 주요 생성자

CODEDRAGON Development/Algorithm, DataStructure

반응형

 

HashMap 클래스

·       Hashtable과 거의 동일한 객체이며 Hashtable 의 성능을 개선한 클래스입니다.

·       Key Value를 하나의 쌍으로 저장되는 구조이며 저장되는 Value Keynull을 허용합니다.

·       하지만 key값의 중복은 허용하지 않으므로 null을 가지는 Key 2개일 수 없습니다.

·       내부 hash 값에 따라 키순서가 정해지므로 특정 규칙없이 출력됩니다.(내부적인 규칙으로 자동 정렬)

·       Hashtable과 다른 점은  Key Value에 있어 null을 허용한다는 점과 스레드 동기화를 지원하지 않는다는 점입니다.

·       동기화가 포함되지 않았으므로 Multi-Thread환경에서의 구현이 아니라면 Hashtable에 비해서 처리 속도가 빠른 장점을 가지고 있습니다.

·       HashMap 클래스는 해시 알고리즘(hash algorithm)을 사용하여 검색 속도가 매우 빠릅니다. 해시를 사용하기 때문에 많은 양의 데이터를 검색하거나 일괄적으로 데이터 뽑아낸 후 특정값만 가져올 경우 사용합니다.

·       환경설정시 많이 사용됩니다.

 

 

Hashtable vs HashMap

구분

Hashtable

HashMap

key

null 불가

null 허용

value

null 불가

null 허용

Thread 동기화

지원

지원 안함

 

 

 

HashMap의 주요 생성자

구현 클래스

설명

HashMap()

초기용량을 16으로 하고 적재율은 0.75로 하여 새로운 HashMap객체가 생성됩니다.

HashMap(int initalCapacity)

전달된 인자를 통해 객체를 저장할 수 있는 초기용량을 설정하고 기본 적재율인 0.75 HashMap객체가 생성됩니다.

HashMap(int initialCapacity, float loadFactor)

전달된 인자인 용량(initialCapacity)과 적재율(loadFactor)로 새로운 HashMap객체가 생성됩니다.

HashMap(Map m)

지정된 Map의 모든 요소를 포함하는 HashMap을 생성합니다.