HashMap | HashTable | ConcurrentHashMap | |
---|---|---|---|
key와 value에 null 허용 | O | X | X |
동기화 보장(Thread-safe) | X | O(메소드에 synchronized키워드가 있음) | O (Map 전체에 락을 걸지 않고 Map을 여러 조각으로 쪼개 일부만 락을 건다) |
추천 환경 | 싱글 쓰레드 | 멀티 쓰레드 | 멀티 쓰레드 |
특징 | - 동기화 처리 하지 않아 데이터 탐색 속도 빠름 - 반면 신뢰성과 안정성 떨어짐 | - 데이터 무결성 보장 - 데이터 lock으로 느림 | - HashMap과 같은 구조이지만 동기화 가능 - HashMap, HashTable보다 빠름 |