Dart 프로그래밍 언어에서 맵(Map) 자료구조의 사용법을 설명하기 위해 작성되었습니다. 맵은 키(Key)와 값(Value) 쌍으로 데이터를 저장하고 관리하는 데 유용한 자료구조로, 효율적인 데이터 접근을 가능하게 합니다. 맵의 생성, 추가, 수정, 삭제, 조회 및 반복을 포함한 다양한 작업을 예시 코드와 함께 자세히 설명하여, Dart 프로그래밍에서 맵을 효과적으로 활용할 수 있도록 정리해 보겠습니다.

Dart 맵(Map)
맵(Map)은 키(Key)와 값(Value)의 쌍으로 이루어진 자료구조입니다. 맵에서 키는 고유한 값으로, 값을 찾기 위해 사용됩니다. 값은 키에 연결되어 저장되며, 키를 통해 값을 가져올 수 있습니다.
1. Dart에서 맵을 생성하는 방법은 다음과 같습니다:
var map1 = {'key1': 'value1', 'key2': 'value2'};
Map<String, int> map2 = {'apple': 1, 'banana': 2, 'orange': 3};
위의 예시에서 map1 은 dynamic 타입의 키와 값을 가지는 맵이고, map2 는 String 타입의 키와 int 타입의 값을 가지는 맵입니다.
2. 맵에 값을 추가하거나 수정하는 방법은 다음과 같습니다:
var map = {'key1': 'value1', 'key2': 'value2'};
map['key3'] = 'value3';// 새로운 키-값 쌍 추가
map['key1'] = 'new value'; // 기존 키의 값 수정
3. 맵에서 값을 가져오는 방법은 다음과 같습니다:
var map = {'key1': 'value1', 'key2': 'value2'};
print(map['key1']); // 'value1' 출력
4. 맵에 특정 키가 존재하는지 확인하는 방법은 다음과 같습니다:
var map = {'key1': 'value1', 'key2': 'value2'};
print(map.containsKey('key1')); // true 출력
print(map.containsKey('key3')); // false 출력
5. 맵을 반복 하면서 키와 값을 가져오는 방법은 다음과 같습니다:
var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
map.forEach((key, value) {
print('$key: $value');
});
위의 코드는 맵의 각 키-값 쌍을 반복하면서 키와 값을 출력합니다.
6. 맵의 크기(길이)를 가져오는 방법은 다음과 같습니다:
var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
print(map.length); // 3 출력
7. 맵에서 특정 키-값 쌍을 제거하는 방법은 다음과 같습니다:
var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
map.remove('key2');
print(map); // {key1: value1, key3: value3} 출력
8. 맵의 모든 키-값 쌍을 제거하는 방법은 다음과 같습니다:
var map = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
map.clear();
print(map); // {} 출력
실제 예시:
void main() {
// 학생 정보를 저장하는 맵
Map<String, dynamic> student = {
'name': '홍길동',
'age': 20,
'major': '컴퓨터공학',
'grades': {'수학': 'A', '영어': 'B', '프로그래밍': 'A+'}
};
// 학생 정보 출력
print('이름: ${student['name']}');
print('나이: ${student['age']}');
print('전공: ${student['major']}');
// 학생의 성적 출력
print('성적:');
student['grades'].forEach((subject, grade) {
print(' $subject: $grade');
});
// 학생의 평균 성적 계산
var totalGrade = 0;
var gradeMap = {
'A+': 4.5,
'A': 4.0,
'B+': 3.5,
'B': 3.0,
'C+': 2.5,
'C': 2.0,
'D+': 1.5,
'D': 1.0,
'F': 0.0
};
student['grades'].forEach((subject, grade) {
totalGrade += gradeMap[grade];
});
var avgGrade = totalGrade / student['grades'].length;
print('평균 학점: ${avgGrade.toStringAsFixed(2)}');
}
위의 예시에서는 학생 정보를 저장하는 맵을 생성하고, 맵에 저장된 학생 정보를 출력합니다. 또한, 학생의 성적을 반복하면서 출력하고, 평균 학점을 계산하여 출력합니다.
맵은 키-값 쌍으로 데이터를 저장하고 관리하는 데 유용한 자료구조입니다. 키를 통해 값에 빠르게 접근할 수 있으며, 다양한 타입의 데이터를 저장할 수 있습니다. 맵을 사용 하면 관련된 데이터를 그룹화하고 효율적으로 관리할 수 있습니다.
'프로그래밍 언어 > Dart' 카테고리의 다른 글
Dart 제네릭 사용법. 타입 안전성과 코드 재사용성을 높이는 방법 - Dart 기초 #16 (0) | 2024.06.20 |
---|---|
Dart Set 자료구조 이해하기. 셋 만들기와 사용법 - Dart 기초 #15 (0) | 2024.06.19 |
Dart 리스트 사용법. 생성부터 추가, 제거, 정렬까지 완벽 가이드 - Dart 기초 #13 (0) | 2024.06.17 |
Dart에서 믹스인과 익스텐션 사용법: 다중 상속과의 차이점 - Dart 기초 #12 (0) | 2024.06.14 |
Dart에서 추상 클래스와 인터페이스 사용 방법, 클래스 상속과 구현 가이드 - Dart 기초 #11 (0) | 2024.06.13 |