IT기술/다트 (dart)

[Dart 완전 정복] 다트 컬렉션(Collection) 마스터하기: List, Map, Set, Enum 총정리

후스파 2025. 3. 20. 13:41
반응형
다트 Dart

Dart 언어는 데이터를 효율적으로 관리하기 위한 다양한 컬렉션 타입을 제공합니다. 이 글에서는 Dart의 주요 컬렉션인 List, Map, Set, 그리고 Enum에 대해 상세히 알아보고, 실제 사용 예제를 통해 각 컬렉션의 특징과 활용법을 살펴보겠습니다.

 

1. List: 순서가 있는 데이터 집합

List는 순서가 있는 데이터의 집합으로, 인덱스를 통해 각 요소에 접근할 수 있습니다.

주요 특징과 사용법:

  • 리스트 생성 및 접근
List<int> numbers = [10, 20, 30, 40, 50];
print(numbers[0]); // 출력: 10
 
  • 길이 확인
List<String> fruits = ['apple', 'banana', 'cherry'];
print(fruits.length); // 출력: 3
  
  • 값 추가
List<int> numbers = [1, 2, 3];
numbers.add(4);
print(numbers); // 출력: [1, 2, 3, 4]
 
  • 값 필터링
List<int> numbers = [1, 2, 3, 4, 5, 6];
var evenNumbers = numbers.where((item) => item.isEven);
print(evenNumbers.toList()); // 출력: [2, 4, 6]
  
  • 값 변경
 
List<int> numbers = [1, 2, 3];
var doubled = numbers.map((item) => item * 2);
print(doubled.toList()); // 출력: [2, 4, 6]
 
  • 값 집계
List<int> numbers = [1, 2, 3, 4];
var sum = numbers.reduce((acc, item) => acc + item);
print(sum); // 출력: 10

 

2. Map: 키-값 쌍의 집합

Map은 키와 값의 쌍으로 이루어진 컬렉션으로, JSON과 유사한 형태로 데이터를 관리할 수 있습니다.

주요 특징과 사용법:

  • Map 생성 및 접근
var person = {'name': 'Alice', 'age': 30};
print(person['name']); // 출력: Alice
 
  • 다양한 데이터 타입 사용
var complexMap = {
  'name': 'Bob',
  'age': 25,
  'isStudent': true,
  'grades': [90, 85, 88]
};
print(complexMap); // 출력: {name: Bob, age: 25, isStudent: true, grades: [90, 85, 88]}
 
 

3. Set: 중복 없는 값의 집합

Set은 중복되지 않는 값들의 집합입니다.

주요 특징과 사용법:

  1. Set 생성 및 중복 제거
var uniqueNumbers = {1, 2, 2, 3, 4, 4, 5};
print(uniqueNumbers); // 출력: {1, 2, 3, 4, 5}
 
  
  1. List를 Set으로 변환
List<int> numbers = [1, 2, 3, 4, 5, 5, 4, 3];
var uniqueSet = Set.from(numbers);
print(uniqueSet); // 출력: {1, 2, 3, 4, 5}
 
 

4. Enum: 열거형 데이터 타입

Enum은 특정 값의 목록을 정의하는 데 사용되며, 코드의 가독성을 높이고 오류를 방지합니다.

사용 예:

 
enum Color { red, green, blue }

void main() {
  Color favoriteColor = Color.green;
  print(favoriteColor); // 출력: Color.green
  
  // switch 문에서의 활용
  switch (favoriteColor) {
    case Color.red:
      print('빨간색을 좋아하시는군요!');
      break;
    case Color.green:
      print('초록색을 좋아하시는군요!');
      break;
    case Color.blue:
      print('파란색을 좋아하시는군요!');
      break;
  }
}

 

결론

Dart의 컬렉션은 데이터를 효율적으로 관리하고 조작하는 데 필수적인 도구입니다. List는 순서가 있는 데이터를, Map은 키-값 쌍의 데이터를, Set은 중복 없는 데이터를, 그리고 Enum은 제한된 선택지의 데이터를 관리하는 데 적합합니다.

이러한 컬렉션을 적절히 활용하면 코드의 가독성과 효율성을 크게 향상할 수 있습니다. 특히 Flutter 개발에서 이러한 컬렉션들은 UI 구성, 상태 관리, 데이터 처리 등 다양한 영역에서 핵심적인 역할을 합니다.

 

추가로 고려해볼 만한 고급 주제들:

  1. 비동기 처리와 컬렉션: Future와 Stream을 활용한 비동기 컬렉션 처리
  2. 불변 컬렉션: const 키워드를 사용한 불변 컬렉션 생성
  3. 컬렉션의 성능 최적화: 대용량 데이터 처리 시 컬렉션 선택과 최적화 전략
  4. 커스텀 컬렉션: Iterable을 구현한 사용자 정의 컬렉션 생성

 

Dart의 컬렉션을 마스터하면, 더 효율적이고 견고한 코드를 작성할 수 있으며, 복잡한 데이터 구조도 쉽게 다룰 수 있게 됩니다.

 

 

 

[Dart] 다트 컬렉션 (Collection)

Dart 언어는 다양한 컬렉션 타입을 제공하여 데이터를 효율적으로 관리할 수 있습니다. 이번 포스트에서는...

blog.naver.com

 

 

[Dart 완전 정복] 다트 프로그래밍 언어의 핵심 개념과 기초 문법 총정리

다트(Dart)는 구글이 개발한 현대적인 프로그래밍 언어로, 웹, 모바일, 서버 애플리케이션 개발에 사용됩니다. 원래 자바스크립트를 대체하기 위해 만들어졌지만, 웹 환경의 복잡성으로 인해 자

hoosfa.tistory.com

 

반응형