CODEDRAGON ㆍDevelopment/Algorithm, DataStructure
HashMap 클래스
· Hashtable과 거의 동일한 객체이며 Hashtable 의 성능을 개선한 클래스입니다.
· Key와 Value를 하나의 쌍으로 저장되는 구조이며 저장되는 Value와 Key에 null을 허용합니다.
· 하지만 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을 생성합니다. |
'Development > Algorithm, DataStructure' 카테고리의 다른 글
TreeMap클래스의 주요메소드 (1) | 2017.10.17 |
---|---|
HashMap클래스의 주요 메소드 (0) | 2017.10.17 |
Hashtable 클래스 (0) | 2017.10.17 |
Map.Entry 인터페이스, Map.java, Interface Map.Entry<K,V>, Map.Entry 인터페이스 주요 메소드 (0) | 2017.10.17 |
Map인터페이스 주요 메소드 (0) | 2017.10.17 |