http://iilii.egloos.com/4457500
HashMap란? (Hap인터페이스의 한종류로써 Key와 Value 값으로 데이터를 저장하는 형태)
[참고]
1. Map인터페이스 key,value 를 매핑하는 객체로 List 형태의 조상
2. Map종류 : Hashtable, HasMap, LinkedHasMap, SortedMap, TreeMap
장점 :
-해싱(hashing)이란 검색 방법을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보여줌.
1) 해싱 (Hashing)의 정의
- 해싱 함수 (Hashing Function)를 이용하여 레코드키에 대한 해시 테이블 (Hash Table) 내이 홈 주소
(Home Address)를 계산하여 주어진 레코드에 접근하는 방식이다.
- 직접 접근 (Direct Access Method) 파일을 구성할 때 사용된다.
- 속도는 가장 빠르지만 충돌 현상시 오버플로 해결의 부담이 가중되며, 많은 기억 공간을 요구한다.
단점 :
-데이터 양이 적더라도, 일정 크기의 burket을 가지고 있어야 하기 때문에, 리소스를 많이 사용하는 단점
-순서 보장하지 않음
주의 :
-map에 데이터를 등록할 때, key값은 중복이 되지 않고, value값은 중복이 허용
-만약 중복된 key로 데이터를 삽입할 경우 해당되는 key의 데이터가 나중에 삽입된 데이터로 수정(Update)된다.
해싱(Hashing)이란?
- 레코드를 산술 연산에 의해 한 번에 바로 접근할 수 있는 기법
- 해시 함수(데이터의 저장, 위치 산출 방법)를 통해 탐색 키를 해시 테이블 주소로 변환
해싱을 사용하는 목적
알고리즘의 실행 시 소요되는 시간과 공간에 대해 적절한 균형을 제공
1)기억장소의 제한이 없을 경우 :
키 값을 직접 기억장소의 주소로 사용하면 어떤 탐색이든지 한 번의 기억장소 접근으로 수행이 가능
2)시간에 제한이 없을 경우 :
최소한의 기억장소를 사용하여 데이터를 저장하고 순차 탐색을 수행
따라서, 해싱은 두 극단 사이(기억장소, 시간에 제한)에서 합리적인 균형을 이룰 수 있는 방법을 제공,
해싱을 사용하게 되면 가용한 기억장소를 효과적으로 사용하면서 빠르게 기억장소에 접근
'유용한 팁' 카테고리의 다른 글
[프로그래밍] 프로세스와 스레드 (0) | 2012.09.06 |
---|---|
XML, JSON, BSON, MSGPACK 장,단점 비교 (0) | 2012.09.05 |
[A* 알고리즘을 사용한 길찾기] (0) | 2012.09.05 |
[JAVA] 내부 클래스(inner class) (0) | 2012.09.05 |
[JAVA]추상 클래스(abstract class)와 인터페이스(interface) (0) | 2012.09.05 |