JAVA

HashMap vs HashTable vs ConcurrentHashMap

하늘을난모기 2017. 12. 31. 22:37

기본적으로 모두 <Key, Value> 형태의 자료구조이며, Key값의 중복을 허용하지 않고, Value의 중복을 허용한다.


1. HashMap

Java 1.2부터 생겼으며 기존 HashTable의 Synchronized를 풀어 쓴 맵이다.

동기화가 되어있지 않아 보통 단일 쓰레드에 사용되며, Java 1.8부터는 알고리즘을 개선하여 속도가 더 빨라졌다.


2. HashTable

Java 1.0 ~ Java 1.1에 사용됐다.

Synchronized가 되어있다.


3. SynchronizedMap

Map을 Wrapping하여 HashTable처럼 동기화 시키는 방법이다.

HashTable에 비해 속도가 빠르며, 보통  멀티 쓰레드 환경에서 사용한다.


4. ConcurrentHashMap

Java 1.5 Concurrent 패키지가 생기면서 만들어졌다.

HashMap + SynchronizedMap의 대안으로 만들어졌으며, 속도가 빠르고 쓰레드 간 동기화가 보장된다.

'JAVA' 카테고리의 다른 글

자바8 - 3. 람다  (0) 2018.10.02
자바8 - 2. 동적 파라미터화  (0) 2018.10.02
CheckedException vs UnCheckedException  (0) 2017.06.16
JAVA - 로그함수 (밑이 2인 로그 함수)  (0) 2015.11.26
JAVA - 변수  (0) 2014.07.20