딱콩이의 봄

HashMap과 HashTable의 차이 본문

개발/JAVA

HashMap과 HashTable의 차이

코린이딱콩 2022. 8. 16. 23:04

HashTable

Key와 Value에 Null을 허용하지 않습니다. 동기화를 보장하며 thread-safe 하기 때문에 멀티 스레드를 사용할 수 있습니다. 데이터를 다루는 메서드(get(), put(), remove() 등 )에 synchronized 키워드가 붙어있습니다. 해당 키워드는 메서드를 호출하기 전에 스레드 간 동기화 락을 겁니다. 그래서 멀티 스레드 환경에서도 데이터의 무결성을 보장합니다. 하지만 스레드 간 동기화 락은 매우 느린 동작이라는 단점이 있습니다.

 

HashMap

key값으로 Null을 허용하고, 동기화를 보장하지 않습니다. HashMap은 Thread-safe하지 않아, 싱글 쓰레드 환경에서 사용하는 게 좋습니다. 동기화를 처리하지 않기 때문에 데이터를 탐색하는 속도가 빠릅니다.

 

공통점

Map 인터페이스를 상속받아 구현되며 데이터를 키와 값으로 관리합니다.

 

차이점

HashTable은 Key값에 Null을 허용하지 않지만, HashMap은 Null을 허용합니다.

HashTable은 동기화를 처리하는 비용 때문에 HashMap에 비해 속도가 느립니다.

'개발 > JAVA' 카테고리의 다른 글

JAVA 주요 특징💡  (0) 2022.08.26
LinkedList와 ArrayList 비교  (0) 2022.08.17
Hash 기본 개념과 구조  (0) 2022.08.16
JAVA공부  (0) 2022.08.16
JAVA 공부  (0) 2022.08.16
Comments