티스토리 뷰
반응형
예제로 배우는 Dart & Flutter 시작하기 ⑥ - List, Map, Set 완전 정복하기
Flutter 앱에서 데이터를 저장하고 관리하기 위해 가장 많이 사용되는 것이 바로 컬렉션(Collection) 입니다. Dart에서는 List, Map, Set이 대표적인 컬렉션입니다.
이번 글에서는 각각의 컬렉션 타입을 비교하고, 실습 예제를 통해 활용법을 익혀보겠습니다.
📌 1. List (리스트) - 배열처럼 순서가 있는 데이터
✅ 리스트 선언 및 초기화
void main() {
List<String> fruits = ['사과', '바나나', '딸기'];
print(fruits); // [사과, 바나나, 딸기]
}
✅ 리스트 접근과 수정
void main() {
List<int> numbers = [10, 20, 30];
numbers[1] = 25;
print(numbers[1]); // 25
}
✅ 리스트 추가 및 삭제
void main() {
List<String> items = [];
items.add('첫 번째');
items.addAll(['두 번째', '세 번째']);
items.remove('두 번째');
print(items); // [첫 번째, 세 번째]
}
✅ 반복문과 함께 사용하기
void main() {
List<String> languages = ['Dart', 'Python', 'Go'];
for (var lang in languages) {
print('언어: $lang');
}
}
📌 2. Map (맵) - 키(Key)와 값(Value)의 쌍
✅ Map 선언 및 초기화
void main() {
Map<String, int> scores = {
'영희': 90,
'철수': 85,
'민수': 70
};
print(scores['철수']); // 85
}
✅ Map 값 추가 및 수정
void main() {
var user = {'name': '홍길동', 'age': 30};
user['age'] = 31;
user['city'] = '서울';
print(user);
}
✅ Map 반복 처리
void main() {
var product = {'name': '커피', 'price': 3000};
product.forEach((key, value) {
print('$key: $value');
});
}
📌 3. Set (셋) - 중복 없는 집합
✅ Set 선언 및 기본 사용
void main() {
Set<String> tags = {'Dart', 'Flutter', 'Dart'};
print(tags); // {Dart, Flutter}
}
Set은 중복된 요소를 허용하지 않으며, 순서가 중요하지 않습니다.
✅ Set에 요소 추가
void main() {
Set<int> numbers = {1, 2, 3};
numbers.add(4);
numbers.add(2); // 무시됨 (중복)
print(numbers); // {1, 2, 3, 4}
}
📌 4. List vs Set vs Map 비교
특징 List Set Map
순서 | 있음 (index 기반) | 없음 또는 무작위 | 없음 (key 기반) |
중복 허용 | 허용 | 불허 | 키는 불허, 값은 허용 |
사용 형태 | 배열 같은 자료구조 | 태그, 카테고리 | 사용자 정보, 설정 값 등 |
📌 5. 실전 예제: 쇼핑카트 구현하기
반응형
void main() {
Map<String, int> cart = {};
// 장바구니에 물건 추가
cart['사과'] = 3;
cart['바나나'] = 5;
// 바나나 하나 추가
cart['바나나'] = cart['바나나']! + 1;
// 출력
cart.forEach((item, qty) {
print('$item: $qty개');
});
}
실행 결과:
사과: 3개
바나나: 6개
📌 6. 컬렉션 활용 꿀팁: spread, null-aware, collection if/for
✅ spread 연산자 (...)
다른 리스트의 내용을 포함시킬 때 사용
var base = [1, 2, 3];
var extended = [...base, 4, 5];
✅ null-aware spread (...?)
List<int>? numbers;
var list = [0, ...?numbers]; // 안전하게 처리
✅ collection if / for
var showFlutter = true;
var techs = [
'Dart',
if (showFlutter) 'Flutter',
for (var i in [1, 2]) 'Lang $i'
];
📌 7. 이번 글에서 배운 내용
- Dart의 주요 컬렉션(List, Map, Set)의 정의와 활용법
- 컬렉션 데이터를 반복문으로 처리하는 방법
- 실전 쇼핑카트 예제를 통한 Map 활용법
- Dart의 고급 컬렉션 문법 (spread, if/for 등)
📌 8. 다음 글 예고
다음 글에서는 Dart의 비동기 프로그래밍(Future, async, await) 개념을 다루며, 실시간 데이터 처리나 API 호출을 어떻게 다룰 수 있는지 배웁니다.
Dart List 예제,Dart Map 사용법,Dart Set 중복 제거,Dart 컬렉션 종류,Dart 배열 처리,Dart 반복문과 리스트,Dart 쇼핑카트 예제,Dart Flutter 데이터 처리,Dart 컬렉션 if for,Dart 컬렉션 완전정복
'Programming > dart' 카테고리의 다른 글
예제로 배우는 Dart & Flutter 시작하기 ⑦ - 비동기 프로그래밍 완전 정복 (Future & async/await) (0) | 2025.04.04 |
---|---|
예제로 배우는 Dart & Flutter 시작하기 ⑤ - 클래스와 객체 완벽 이해하기 (1) | 2025.04.01 |
예제로 배우는 Dart & Flutter 시작하기 ④ - 함수의 모든 것(기본부터 응용까지) (0) | 2025.03.31 |
예제로 배우는 Dart & Flutter 시작하기 ③ - 조건문과 반복문 완벽 정리 (0) | 2025.03.29 |
예제로 배우는 Dart & Flutter 시작하기 ② - Dart 기본 문법 마스터하기 (1) | 2025.03.28 |
※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- SEO 최적화
- seo 최적화 10개
- Webpack
- SEO최적화
- 프론트엔드
- github
- kotlin
- Prisma
- gatsbyjs
- nextJS
- rag
- nodejs
- NestJS
- Docker
- AI챗봇
- LangChain
- fastapi
- PostgreSQL
- Next.js
- CI/CD
- 웹개발
- 관리자
- 개발블로그
- 백엔드개발
- 스마트 컨트랙트
- Ktor
- llm
- App Router
- REACT
- AI 자동화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
반응형