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
반응형
'CS > 자료구조' 카테고리의 다른 글
[자료구조] 이진 탐색 트리 (Binary Search Tree) 1 (0) | 2024.08.18 |
---|---|
[자료구조] 트리 (Tree) (0) | 2024.08.18 |
[자료구조] 해시 테이블 (Hash Table) (0) | 2024.08.17 |
[자료구조] 데크 (Deque) (0) | 2024.08.17 |
[자료구조] 큐 (Queue) (0) | 2024.08.17 |