191029_TIL(Set in JS)

자바스크립트 집합

집합 소개

집합(set)은 가장 근간이 되는 자료 구조 중 하나다. 집합은 정렬되지 않은 유일한(중복되지 않는) 항목들의 그룹이다. 집합은 상수 시간 연산이 가능한데 그 이유는 집합의 구현이 해시 테이블의 구현을 기초로 하기 때문이다. 자바스크립트에서는 Set(집합)이 기본 지원된다.

1
let exampleSet = new Set();

기본 Set 객체에는 size라는 정수 속성 하나만이 존재한다.

집합 연산

집합은 항목이 유일한지 확인하는 데 있어 가장 강력한 도구이다.

삽입

집합에는 중복되는 항목들을 추가할 수 없다. 시간복잡도는 O(1)이다.

1
2
3
4
let exampleSet = new Set();
exampleSet.add(1); // exampleSet: Set {1}
exampleSet.add(1); // exampleSet: Set {1}
exampleSet.add(2); // exampleSet: Set {1, 2}

삭제

Set.delete는 불리언을 반환한다. 해당 항목이 존재해서 삭제되었다면 true 해당 항목이 존재하지 않으면 false가 반환된다.

1
2
3
4
let exampleSet = new Set();
exampleSet.add(1); // exampleSet: Set {1}
exampleSet.delete(1); // true
exampleSet.add(2); // exampleSet: Set {2}

배열에서 항목 하나를 삭제하기 위해서는 O(n) 시간이 걸리지만 집합의 경우 O(1)에 항목을 삭제할 수 있다.

포함

Set.has는 해당 항목이 집합 내에 존재하는지 확인한다. 시간 복잡도 O(1)

1
2
3
4
let exampleSet = new Set();
exampleSet.add(1); // exampleSet: Set {1}
exampleSet.has(1); // true
exampleSet.has(2); // false
Share