개발햄비

[java]HashMap과 HashTable차이 본문

개발/java

[java]HashMap과 HashTable차이

개발햄 2021. 4. 18. 18:20

HashMap과 Hashtable

자바에서 제공하는 HashMap과 Hashtable은 Map인터페이스를 상속받아 구현되어 데이터를 키와 값으로 관리하는 자료구조입니다.

큰 특징으로는 키(Key)가 데이터를 추출할 때 구분자로 활용하는 방식을 취하는데 이는 리스트 인터페이스와 같은 자료구조보다 탐색에 있어 더 높은 효율을 가집니다.

차이점

1 - 동기화 (Synchronization)

HashMap의 경우 동기화를 지원하지 않습니다.

반면 다중 스레드 환경에서 Hashtable은 동기화를 지원하기 때문에 실행 환경에 따라 구분하여 사용하면 됩니다.

추가로 속도적인 측면에서도 구형이라 할 수 있는 HashTable은 동기화 처리라는 비용때문에 HashMap에 비교적 느립니다.

예제

HashMap<String, String> map = new HashMap<String, String>();  
    // 값 추가  
    map.put("key\_1", "값1");  
    map.put("key\_2", "값2");  
    map.put("key\_3", "값3");

    System.out.println(map.get("key_1")); // 값1 출력
    System.out.println(map.get("key_2")); // 값1 출력
    System.out.println(map.get("key_2")); // 값1 출력

    map.remove("key_1"); // 값 삭제