CS/자료구조

[자료구조] HashMap vs Hashtable

meizzi 2024. 8. 17. 23:40
728x90
반응형

1. 공통점

  • 둘 다 Map 인터페이스를 구현한 것
  • Key-Value 쌍으로 데이터 처리

2. 차이점

  • Key에 Null 사용 여부
    • Hashtable: 불가능
    • HashMap: 가능
  • Thread-safe
    • Hashtable: O (멀티 스레드 환경에서 우수)
    • HashMap: X (싱글 스레드 환경에서 우수)
      • synchronizedMap, ConcurrentHashMap을 사용하면 HashMap도 Thread-safe하게 사용 가능

3. 코드

// Hashtable
Hashtable<Integer, Integer> ht = new Hashtable<>();
ht.put(0, 10);
System.out.println(ht.get(0)); // 10

// HashMap
HashMap<Integer, Integer> hm = new HashMap<>();
hm.put(0, 10);
System.out.println(hm.get(0)); // 10

Map<Integer, Integer> map1 = ht;
Map<Integer, Integer> map1 = hm;
System.out.println(map1.get(0)); // 10
System.out.println(map2.get(0)); // 10

ht.put(null, 999); // error
System.out.println(hm.get(null)); // error

hm.put(null, 999);
System.out.println(hm.get(null)); // 999
728x90
반응형