프로그래밍 언어/Dart

Dart Set 자료구조 이해하기. 셋 만들기와 사용법 - Dart 기초 #15

eco7T 2024. 6. 19. 08:51
반응형

이번 글에서는 Dart Set 자료구조의 개념과 사용법을 쉽게 이해할 수 있도록 정리해 보겠습니다. 셋의 기본적인 정의, 생성 방법, 요소 추가 및 제거, 다양한 셋 연산 등을 설명하며, 구체적인 예제 코드를 통해 개념을 확실히 이해할 수 있도록 설명합니다.

Dart Set 자료구조 이해하기
Dart Set 자료구조 이해하기

 

Dart Set 자료구조

셋은 고유한 값들의 집합을 의미합니다. 집합 이론에서 유래한 자료구조로, 중복된 값을 허용하지 않는 특징이 있습니다. 예를 들어,  {1, 2, 3} 은 셋이지만,  {1, 2, 2, 3} 은 셋이 아닙니다. 셋은 순서가 없기 때문에  {1, 2, 3} 과  {3, 1, 2} 는 동일한 셋입니다.

  셋 만들기

Dart에서 셋을 만드는 방법은 다음과 같습니다.

// 빈 셋 만들기 Set<int> mySet = {}; print(mySet); // 출력: {} // 값을 가지는 셋 만들기 Set<String> names = {'John', 'Jane', 'Jim'}; print(names); // 출력: {John, Jane, Jim}

셋을 만들 때는  Set<Type> 형식으로 선언합니다. 여기서  Type 은 셋에 포함될 요소의 데이터 타입을 나타냅니다. 예를 들어,  Set<int> 는 정수형 셋을 의미하고,  Set<String> 은 문자열형 셋을 의미합니다.

  셋 요소 추가하기

셋에 새로운 요소를 추가하려면  add()  메소드를 사용합니다.

Set<int> numbers = {1, 2, 3}; print(numbers); // 출력: {1, 2, 3} numbers.add(4); print(numbers); // 출력: {1, 2, 3, 4} // 중복된 값은 무시됩니다. numbers.add(2); print(numbers); // 출력: {1, 2, 3, 4}

  셋 요소 제거하기

반응형

셋에서 요소를 제거하려면  remove()  메소드를 사용합니다.

Set<String> fruits = {'apple', 'banana', 'orange'}; print(fruits); // 출력: {apple, banana, orange} fruits.remove('banana'); print(fruits); // 출력: {apple, orange}

  셋 연산

셋에는 여러 가지 연산이 가능합니다. 예를 들어, 교집합( intersection ), 합집합( union ), 차집합( difference ) 등이 있습니다.

Set<int> set1 = {1, 2, 3}; Set<int> set2 = {2, 3, 4}; // 교집합 Set<int> intersection = set1.intersection(set2); print(intersection); // 출력: {2, 3} // 합집합 Set<int> union = set1.union(set2); print(union); // 출력: {1, 2, 3, 4} // 차집합 Set<int> difference = set1.difference(set2); print(difference); // 출력: {1}

  셋 반복하기

셋에 포함된 요소들을 반복하려면  for  루프나  forEach()  메소드를 사용할 수 있습니다.

Set<String> colors = {'red', 'green', 'blue'}; // for 루프 for (String color in colors) { print(color); } // 출력: // red // green // blue // forEach colors.forEach((color) => print(color)); // 출력: // red // green // blue

이렇게 셋의 개념과 기본적인 사용법을 설명해 드렸습니다.

 

셋은 고유한 값들의 집합을 다루는 데 유용하며, 다양한 연산을 지원합니다. 주어진 예제 코드들을 직접 실행해보며 셋을 더 깊이 이해해보시기 바랍니다.

반응형