본문 바로가기
프로그래밍/Dart

[Dart] 5. Dart의 "컬렉션"

by iwbap 2024. 6. 19.
728x90

Dart 학습: 컬렉션

Dart에서는 데이터를 효율적으로 저장하고 관리하기 위해 다양한 컬렉션 타입을 제공합니다. 이번 글에서는 리스트, 맵, 세트에 대해 알아보겠습니다.


1. 리스트: 리스트 생성, 접근, 수정

리스트(List)는 여러 값을 저장할 수 있는 순서가 있는 컬렉션입니다. 리스트는 인덱스를 사용하여 접근하고 수정할 수 있습니다.

 

리스트 생성: 리스트는 []를 사용하여 생성할 수 있으며, 타입을 명시할 수도 있습니다.

[dart]
 
void main() {
  List<int> numbers = [1, 2, 3, 4, 5];
  List<String> fruits = ['apple', 'banana', 'cherry'];

  print(numbers);  // [1, 2, 3, 4, 5] 출력
  print(fruits);   // [apple, banana, cherry] 출력
}
 
 

리스트 접근 : 인덱스를 사용하여 리스트의 요소에 접근할 수 있습니다. 인덱스는 0부터 시작합니다.

[dart]
 
void main() {
  List<String> fruits = ['apple', 'banana', 'cherry'];

  print(fruits[0]);  // apple 출력
  print(fruits[1]);  // banana 출력
  print(fruits[2]);  // cherry 출력
}
 
 

리스트 수정 : 리스트의 요소를 인덱스를 통해 수정하거나, 새로운 요소를 추가할 수 있습니다.

[dart]
 
void main() {
  List<String> fruits = ['apple', 'banana', 'cherry'];

  // 요소 수정
  fruits[1] = 'blueberry';
  print(fruits);  // [apple, blueberry, cherry] 출력

  // 요소 추가
  fruits.add('orange');
  print(fruits);  // [apple, blueberry, cherry, orange] 출력

  // 요소 제거
  fruits.remove('apple');
  print(fruits);  // [blueberry, cherry, orange] 출력
}

2. 맵: 키-값 쌍, 접근, 수정

맵(Map)은 키-값 쌍을 저장하는 컬렉션입니다. 각 키는 고유해야 하며, 값을 통해 접근하고 수정할 수 있습니다.

 

맵 생성 : 맵은 {}를 사용하여 생성할 수 있으며, 키와 값의 타입을 명시할 수도 있습니다.

[dart]
 
void main() {
  Map<String, int> ages = {
    'Alice': 25,
    'Bob': 30,
    'Charlie': 35
  };

  print(ages);  // {Alice: 25, Bob: 30, Charlie: 35} 출력
}
 
 

맵 접근 : 키를 사용하여 맵의 값을 접근할 수 있습니다.

[dart]
 
void main() {
  Map<String, int> ages = {
    'Alice': 25,
    'Bob': 30,
    'Charlie': 35
  };

  print(ages['Alice']);  // 25 출력
  print(ages['Bob']);    // 30 출력
}
 
 

맵 수정 : 맵의 값을 키를 통해 수정하거나, 새로운 키-값 쌍을 추가할 수 있습니다.

[dart]
 
void main() {
  Map<String, int> ages = {
    'Alice': 25,
    'Bob': 30,
    'Charlie': 35
  };

  // 값 수정
  ages['Bob'] = 32;
  print(ages);  // {Alice: 25, Bob: 32, Charlie: 35} 출력

  // 새로운 키-값 쌍 추가
  ages['Dave'] = 40;
  print(ages);  // {Alice: 25, Bob: 32, Charlie: 35, Dave: 40} 출력

  // 키-값 쌍 제거
  ages.remove('Alice');
  print(ages);  // {Bob: 32, Charlie: 35, Dave: 40} 출력
}

3. 세트: 세트 생성, 세트 연산

세트(Set)는 중복되지 않는 요소들의 컬렉션입니다. 세트는 수학적 집합 연산을 지원합니다.

 

세트 생성: 세트는 {}를 사용하여 생성할 수 있으며, 타입을 명시할 수도 있습니다.

[dart]
 
void main() {
  Set<int> numbers = {1, 2, 3, 4, 5};

  print(numbers);  // {1, 2, 3, 4, 5} 출력
}
 
 

세트 연산: 세트는 요소를 추가하거나 제거할 수 있으며, 다양한 집합 연산을 지원합니다.

[dart]
 
void main() {
  Set<int> numbers = {1, 2, 3, 4, 5};

  // 요소 추가
  numbers.add(6);
  print(numbers);  // {1, 2, 3, 4, 5, 6} 출력

  // 요소 제거
  numbers.remove(3);
  print(numbers);  // {1, 2, 4, 5, 6} 출력
}
 
 

집합 연산: 세트는 합집합, 교집합, 차집합 등의 집합 연산을 지원합니다.

[dart]
 
void main() {
  Set<int> setA = {1, 2, 3};
  Set<int> setB = {3, 4, 5};

  // 합집합
  Set<int> union = setA.union(setB);
  print(union);  // {1, 2, 3, 4, 5} 출력

  // 교집합
  Set<int> intersection = setA.intersection(setB);
  print(intersection);  // {3} 출력

  // 차집합
  Set<int> difference = setA.difference(setB);
  print(difference);  // {1, 2} 출력
}

이 글에서는 Dart의 주요 컬렉션인 리스트, 맵, 세트에 대해 알아보았습니다. 이러한 컬렉션을 이해하고 활용하면 데이터를 효율적으로 저장하고 관리할 수 있습니다. 다음 단계에서는 예외 처리에 대해 학습해보세요. Happy Coding!

728x90