1. 맵과 해시 맵의 차이
일반적으로 '맵'과 '해시맵'은 모두 키-값 쌍을 저장하는 데 사용되는 데이터 구조이지만, '맵'과 '해시맵'이라는 구체적인 용어는 프로그래밍 언어나 문맥에 따라 다른 의미를 가질 수 있습니다.
[Map]
맵은 키-값 쌍의 컬렉션을 나타내는 추상 데이터 유형으로, 맵 내에서 각 키는 고유합니다.
맵은 해당 키를 기반으로 값을 효율적으로 조회하고 검색할 수 있습니다.
맵은 일반적으로 키-값 쌍을 삽입, 검색, 제거하는 작업은 물론 키가 있는지 확인하고 맵의 항목을 반복하는 작업을 제공합니다.
[Hash Map]
해시맵은 해시 테이블을 기반으로 하는 맵 데이터 구조의 특정 구현입니다.
해시 테이블은 해시 함수를 사용하여 키를 기본 배열의 인덱스에 매핑하므로 키-값 쌍을 효율적으로 조회 및 검색할 수 있습니다.
해시맵은 삽입, 검색, 제거와 같은 기본 작업에 대해 상수 시간 평균 케이스 성능을 제공합니다.
그러나 해시맵의 항목 순서는 보장되지 않으며 특정 구현이나 기타 요인에 따라 달라질 수 있습니다.
해시맵은 일반적으로 항목의 순서가 중요하지 않고 빠른 조회 및 검색이 필요할 때 사용됩니다.
Java와 같은 일부 프로그래밍 언어에서 "해시맵"은 해시 테이블 기반 맵의 내장 클래스 또는 라이브러리 구현을 구체적으로 지칭합니다. 다른 언어에서는 해시 테이블 기반 맵의 이름이나 구현이 다를 수 있습니다. 특정 프로그래밍 언어에서 이러한 용어를 사용할 때는 특정 문서나 언어 규칙을 참조하는 것이 중요합니다.
2. 결론
요약하자면, '맵'은 키-값 쌍의 집합을 나타내는 일반적인 개념이며, '해시맵'은 효율적인 키-값 쌍 검색을 위해 해시 테이블을 사용하는 맵의 특정 구현을 의미합니다.
'공부 > 기타' 카테고리의 다른 글
맵(Map)의 Find보다 벡터(Vector)의 Find가 더 빠른 경우는 언제일까? (0) | 2023.06.12 |
---|---|
죽음의 다이아몬드(the Deadly Diamond of Death)란? (0) | 2023.06.11 |
트랜잭션(transaction)이란? (0) | 2023.06.11 |
동적 라이브러리(Dynamic library)란? (0) | 2023.06.10 |
정적 라이브러리(Static Library)란? (0) | 2023.06.05 |