이번 글에서는 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
이렇게 셋의 개념과 기본적인 사용법을 설명해 드렸습니다.
셋은 고유한 값들의 집합을 다루는 데 유용하며, 다양한 연산을 지원합니다. 주어진 예제 코드들을 직접 실행해보며 셋을 더 깊이 이해해보시기 바랍니다.
'프로그래밍 언어 > Dart' 카테고리의 다른 글
Dart 비동기 프로그래밍. Future와 async/await 사용법 및 예제 코드 - Dart 기초 #17 (0) | 2024.06.21 |
---|---|
Dart 제네릭 사용법. 타입 안전성과 코드 재사용성을 높이는 방법 - Dart 기초 #16 (0) | 2024.06.20 |
Dart Map 사용법 및 예제. 효율적인 데이터 관리를 위한 의 생성과 관리 방법 - Dart 기초 #14 (0) | 2024.06.18 |
Dart 리스트 사용법. 생성부터 추가, 제거, 정렬까지 완벽 가이드 - Dart 기초 #13 (0) | 2024.06.17 |
Dart에서 믹스인과 익스텐션 사용법: 다중 상속과의 차이점 - Dart 기초 #12 (0) | 2024.06.14 |