[javascript] 맵과 셋 데이터 구조
맵(Map)과 셋(Set)은 자바스크립트에서 데이터를 구조화하는 데 사용되는 특별한 데이터 구조입니다. 이들은 효율적인 데이터 관리와 검색을 위해 설계되었으며 다양한 상황에서 유용하게 사용될 수 있습니다.
맵(Map)
맵은 키와 값을 연결하는 데이터 구조입니다. 이를 통해 키를 사용하여 값을 저장하고 검색할 수 있습니다. 맵은 객체와 유사한 형태를 가지며 특정한 키-값 쌍의 접근이 가능합니다. 여러 가지 특징을 가지고 있는데, 일반적으로 다음과 같은 특징을 갖습니다:
- 키와 값의 연결: 각각의 키는 오직 하나의 값과 연결됩니다.
- 순서 보장: 키의 삽입 순서대로 저장되므로, 순서를 보장합니다.
- 중복 허용: 동일한 키를 여러 번 사용할 수 있습니다.
아래는 맵을 사용하는 예시 코드입니다:
// 맵 생성
let map = new Map();
// 값을 저장
map.set("name", "John");
map.set("age", 30);
map.set("job", "developer");
// 값 읽기
console.log(map.get("name")); // "John"
console.log(map.get("age")); // 30
// 맵의 크기
console.log(map.size); // 3
// 맵 순회
map.forEach((value, key) => {
console.log(`${key}: ${value}`);
});
// 키 존재 여부 확인
console.log(map.has("name")); // true
// 키 제거
map.delete("name");
// 맵 비우기
map.clear();
셋(Set)
셋은 고유한 값들의 집합을 표현하는 데이터 구조입니다. 이를 통해 데이터를 중복 없이 저장하고, 효율적으로 검색할 수 있습니다. 셋은 배열과 유사한 형태를 가지지만, 각 값은 유일하며 순서를 보장하지 않습니다. 다음은 셋의 주요 특징입니다:
- 고유성: 셋 내의 값은 중복되지 않습니다.
- 순서 보장: 셋에 추가된 순서대로 저장되지만, 순서를 보장하지 않습니다.
- 값 추가 및 삭제: 셋에 값 추가 및 삭제가 가능합니다.
아래는 셋을 사용하는 예시 코드입니다:
// 셋 생성
let set = new Set();
// 값 추가
set.add(1);
set.add(2);
set.add(3);
set.add(1); // 중복 값은 무시됩니다
// 값 삭제
set.delete(2);
// 셋의 크기
console.log(set.size); // 2
// 셋 순회
set.forEach((value) => {
console.log(value);
});
// 값 존재 여부 확인
console.log(set.has(1)); // true
console.log(set.has(2)); // false
// 셋 비우기
set.clear();
맵과 셋은 자바스크립트에서 데이터 구조화와 관련된 작업을 할 때 매우 유용한 도구입니다. 이러한 데이터 구조를 사용하면 데이터를 효율적으로 관리할 수 있고, 검색 작업을 최적화할 수 있습니다. 맵과 셋의 기능과 사용법을 잘 이해하면, 자바스크립트에서 다양한 문제를 해결하는 데 도움이 될 것입니다.