-
[Dart][Map] AOS 개발자가 공부하는 Dart 언어 기초 9Flutter 2023. 7. 22. 20:04
[이전 글]
2023.07.12 - [Flutter] - [Dart][List] AOS 개발자가 공부하는 Dart 언어 기초 8
[Dart][List] AOS 개발자가 공부하는 Dart 언어 기초 8
[이전 글] 2023.07.11 - [Flutter] - [Dart][반복문] AOS 개발자가 공부하는 Dart 언어 기초 7 [Dart][반복문] AOS 개발자가 공부하는 Dart 언어 기초 7 [이전 글] 2023.07.10 - [Flutter] - [Dart][반복문 ] AOS 개발자가 공부
tokkoutai.tistory.com
- Map 이란?
- 다른 언어와 마찬가지로 key-value 쌍으로 이루어져 있는 객체이다.
- key와 value는 어떠한 자료형을 사용해도 상관없다.
- 기본적으로 LinkedHashMap이다.
철수네 반은 체육대회 때 씨름 선수를 선발하기 위해 반 학생들의 몸무게를 조사하였다. 그중 가장 몸무게가 많이 나가는 기준으로 5명을 선발하였다.
선수 = [민우:85, 정우:82, 선우:79, 동우:78, 제인:75]
이렇게 선수를 선발하였다고 할 때 학생의 이름이 key 가 되고 몸무게를 value라 한다.- Map 선언 예시
//map void main() { //선언 방식 1 Map<String, int> weight = { '민우': 85, '정우': 82, '선우': 79, '동우': 78, '제인': 75, }; //선언 방식 2 Map<String, int> weight2 = new Map(); // 먼저 객체를 생성한다. weight2['민우'] = 85; //데이터를 삽입한다. weight2['정우'] = 82; weight2['선우'] = 79; weight2['동우'] = 78; weight2['제인'] = 75; print('선언방식 1 : $weight'); print('선언방식 2 : $weight2'); } /** 결과 - 선언방식 1 : {민우: 85, 정우: 82, 선우: 79, 동우: 78, 제인: 75} 선언방식 2 : {민우: 85, 정우: 82, 선우: 79, 동우: 78, 제인: 75} **/
- map 메서드(Map 객체 내의 map 함수)
- Returns a new map where all entries of this map are transformed by the given convert function.
- 이 맵의 모든 항목이 지정된 변환 함수에 의해 변환되는 새 맵을 반환 합니다.
- 이게 무슨 말인가? 직접 코드로 보자
//map > map void main() { //선언 방식 1 Map<String, int> weight = { '민우': 85, '정우': 82, '선우': 79, '동우': 78, '제인': 75, }; print(weight); //map 메소드는 키와 벨류를 변형 하여 새로운 Map 객체를 반환 한다. final result = weight.map((key, value) => MapEntry( '이름 : $key', '몸무게 : $value\n', )); print(result); //키를 변형하여 출력이 가능하다. final keys = weight.keys.map((key) => '이름 : $key').toList(); print(keys); //벨류를 변형하여 출력이 가능하다. final values = weight.values.map((value) => '몸무게 : $value').toList(); } /** 결과 - {민우: 85, 정우: 82, 선우: 79, 동우: 78, 제인: 75} {이름 : 민우: 몸무게 : 85 , 이름 : 정우: 몸무게 : 82 , 이름 : 선우: 몸무게 : 79 , 이름 : 동우: 몸무게 : 78 , 이름 : 제인: 몸무게 : 75 } [이름 : 민우, 이름 : 정우, 이름 : 선우, 이름 : 동우, 이름 : 제인] [몸무게 : 85, 몸무게 : 82, 몸무게 : 79, 몸무게 : 78, 몸무게 : 75] **/
- remove 메서드
- 특정 키를 찾아 삭제할 때 사용 한다.
선우가 갑자기 집안일이 생겨 출전을 못하게 되었다.
기존 명단에서 선우를 찾아 삭제를 해보자.//map > remove void main() { Map<String, int> players = { '민우': 85, '정우': 82, '선우': 79, '동우': 78, '제인': 75, }; print('기존 명단 : players'); players.remove('선우'); print('삭제 후 명단 : $players'); } /** 결과 - 기존 명단 : players 삭제 후 명단 : {민우: 85, 정우: 82, 동우: 78, 제인: 75} **/
- clear 메서드
- map 의 모든 데이터를 삭제한다.
갑작기 비가 와서 체육대회가 취소 되었다.
명단에 있는 모든 선수 정보를 삭제해 보자.//map > clear void main() { Map<String, int> players = { '민우': 85, '정우': 82, '선우': 79, '동우': 78, '제인': 75, }; print('기존 명단 : $players'); players.clear(); print('삭제 후 명단 : $players'); } /** 결과 - 기존 명단 : {민우: 85, 정우: 82, 선우: 79, 동우: 78, 제인: 75} 삭제 후 명단 : {} **/
- forEach 메서드
- 내부 루프를 통해 반복을 수행한다.
//map > forEach void main() { Map<String, int> players = { '민우': 85, '정우': 82, '선우': 79, '동우': 78, '제인': 75, }; players.forEach((k, v){ print('이름 : $k, 몸무게 : $v'); }); } /** 결과 - 이름 : 민우, 몸무게 : 85 이름 : 정우, 몸무게 : 82 이름 : 선우, 몸무게 : 79 이름 : 동우, 몸무게 : 78 이름 : 제인, 몸무게 : 75 **/
'Flutter' 카테고리의 다른 글
[Dart][Set] AOS 개발자가 공부하는 Dart 언어 기초 10 (0) 2023.07.22 [Dart][List] AOS 개발자가 공부하는 Dart 언어 기초 8 (0) 2023.07.12 [Dart][반복문<while문>] AOS 개발자가 공부하는 Dart 언어 기초 7 (0) 2023.07.11 [Dart][반복문<for문>] AOS 개발자가 공부하는 Dart 언어 기초 6 (0) 2023.07.10 [Dart][산술 연산자] AOS 개발자가 공부하는 Dart 언어 기초 5 (0) 2023.07.07 - Map 이란?