일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- IF문
- 배열
- error
- 백준알고리즘
- IF
- 변수
- Scanner
- Spring
- 함수
- 알고리즘
- Scanner class
- for
- java프로그래밍
- 데이터
- 파이썬프로그래밍기초
- 기본
- 자바
- 자료구조
- 반복문
- MySQL
- IFELSE
- 백준
- C언어
- 1차원배열
- 하드웨어
- 유비쿼터스
- java
- FOR문
- 스캐너
- 스캐너클래스
- Today
- Total
정리하고기록하자
HashTable VS HashMap 본문
HashTable 과 HashMap
자바에서 제공하는 HashMap과 HashTable 은 Map 인터페이스를 상속받아 구현되고
Key, Value 로 관리하는 자료 구조이다.
특징은 Key가 데이터를 추출할 때 구분자로 활용하는 방식을 취하는데 이는 리스트 인터페이스와 같은 자료구조보다 탐색에 있어 더 높은 효율을 기대 할 수 있다.
HashTable 과 HashMap 의 차이점
1. 동기화
HashMap의 경우 동기화를 지원하지 않는다.반면 *멀티 스레드 환경에서 HashTable은 동기화를 지원하지 않기 때문에 실행 환경에 따라 구분하여 사용하면 된다.
속도 면에서 HashTable은 동기화 처리라는 비용 때문에 HashMap에 비해 더 느리다.
* 동기화 : 시스템을 동시에 작동시키기 위해 여러 사건들을 조화시키는 것을 의미한다.
*멀티 스레드 :
일반적으로 하나의 프로세스는 하나의 스레드를 가지고 작업을 수행하게 됩니다.
하지만 멀티 스레드란 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미한다. 멀티 프로세스는 여러 개의 CPU를 사용하여 여러 프로세스를 동시에 수행하는 것을 의미한다.
2. Null 여부
HashMap에서는 Null을 허용한다.
HashTable에서는 Null을 허용하지 않는다.
3. Enumeration(열거) 여부
HashMap에서는 Enumeration를 제공 하지 않는다.
HashTable에서는 Not Fail-Fast Enumeration를 제공 한다
4. 보조해시함수
보조해시함수의 역할은 Key의 해시값을 변경해 해시 충돌 가능성을 줄여주는 역할을 한다.
HashMap은 보조해시를 사용하기 때문에
HashTable에 비해서 해시 충돌이 덜 발생한다.
'Data Structure' 카테고리의 다른 글
그래프 ( Graph ) (0) | 2022.05.28 |
---|---|
HashMap (0) | 2022.05.21 |
해쉬 테이블 ( HashTable ) (1) | 2022.04.16 |
트리 (Tree) (0) | 2022.04.07 |
큐(Queue) (2) | 2022.04.02 |