
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은 중복되지 않는 값들의 집합입니다.
주요 특징과 사용법:
- Set 생성 및 중복 제거
var uniqueNumbers = {1, 2, 2, 3, 4, 4, 5};
print(uniqueNumbers); // 출력: {1, 2, 3, 4, 5}
- 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 구성, 상태 관리, 데이터 처리 등 다양한 영역에서 핵심적인 역할을 합니다.
추가로 고려해볼 만한 고급 주제들:
- 비동기 처리와 컬렉션: Future와 Stream을 활용한 비동기 컬렉션 처리
- 불변 컬렉션: const 키워드를 사용한 불변 컬렉션 생성
- 컬렉션의 성능 최적화: 대용량 데이터 처리 시 컬렉션 선택과 최적화 전략
- 커스텀 컬렉션: Iterable을 구현한 사용자 정의 컬렉션 생성
Dart의 컬렉션을 마스터하면, 더 효율적이고 견고한 코드를 작성할 수 있으며, 복잡한 데이터 구조도 쉽게 다룰 수 있게 됩니다.
[Dart] 다트 컬렉션 (Collection)
Dart 언어는 다양한 컬렉션 타입을 제공하여 데이터를 효율적으로 관리할 수 있습니다. 이번 포스트에서는...
blog.naver.com
[Dart 완전 정복] 다트 프로그래밍 언어의 핵심 개념과 기초 문법 총정리
다트(Dart)는 구글이 개발한 현대적인 프로그래밍 언어로, 웹, 모바일, 서버 애플리케이션 개발에 사용됩니다. 원래 자바스크립트를 대체하기 위해 만들어졌지만, 웹 환경의 복잡성으로 인해 자
hoosfa.tistory.com
'IT기술 > 다트 (dart)' 카테고리의 다른 글
| Dart 비동기 프로그래밍: Future, async, await, Stream (0) | 2025.03.26 |
|---|---|
| 다트(Dart)의 객체지향 프로그래밍(OOP) 개념 (0) | 2025.03.23 |
| [Dart 완전 정복] 다트 함수와 람다, 예외처리 마스터하기 (0) | 2025.03.21 |
| [Dart 완전 정복] 다트 연산자와 제어문 마스터하기 (0) | 2025.03.21 |
| [Dart 완전 정복] 다트 프로그래밍 언어의 핵심 개념과 기초 문법 총정리 (0) | 2025.03.19 |