본문 바로가기
⌨️flutter

7.Dart-Manage Multiple Data with Map, Enum(다트 다중데이터 맵으로 관리)

by 덩크냥 2022. 8. 31.

Map datatype은 주로 database에서 data를얻을때 사용됩니다.

list와 다르게 두가지를 고려해야하는데 바로 keys, values.

Map - Create, Read

map intialize

Map은 key 와 value가 한쌍을 이루고있다. 

value를 찾기위해 우리는 key를 알아야한다. 위의사진은 map을 초기화하는 방법이다.

이대로 map1을 출력하면

이처럼 중괄호에 :로 구분되어져서 key와 value가 출력된다.

 

map.toList()

toList()함수는 key 혹은 value에 사용할 수 있다.

이런식으로 key만 사용하게되면

key들이 대괄호에 묶여서 나오게 된다.

마찬가지로 value를 toList()하려면

map1.values.toList(); 하면 된다.

 

key를 이용해서 value를 알아내는방법은

이처럼 map[key]를 하면 그게곧 value가 된다.

 

Map - Update, Delete

map의 value를 update하는 방법은

이런식으로 특정key에 값만 = 을 이용하여 할당해주면 된다.

 

addAll() :

새로운 Map 변수를 기존의 변수에 추가하고싶을때 addAll()을 이용한다.

기존에 위의 사진처럼 menu라는 변수가 있을때

addMenu라는 새로운변수를 menu에 추가할 수 있다.

이를 한번에 표현하면

이렇게도 사용할 수 있다.

 

remove() :

위 상황에서 menu.remove(KEY); 를 하게되면 해당 key, value가 삭제된다.

 

Loop

map.loop

forEach를 사용하게되면 앞의 변수에 해당하는 키, 밸류가 하나씩 들어가며 반복된다.

조금 더 세분화해서 forEach를 사용할 수 있다.

이렇게 하면 

이렇게 나온다. entries는 MapEntry( : )로 출력을 하게되고 나머지는 각자 자신의것만 출력한다.

 

for-in을 이용해서 key만 받아서 사용하는 방법도 있다.

 key 를 받고, key를 통해 value 까지 알아낸다.

 

하지만 반대로도 사용할수있다.(value를 받아 key를 알아내기)

이렇게 firstWhere()을 이용한다. 이는 반복하는 iterative statement 이기에 느려진다. 

 

Enum

이는 enumerated의 줄임말이다. 이는 데이터를 내가 특정한거 외에는 올 수 없게 하는 역할을 한다.

enum

이들은 values이다.

그래서 

이렇게 values로 받아와서 사용할수 있다. 출력하면

이렇게 나온다. 

.index가 몇번쨰인지(0번부터) 말해주는것이다.

 

Enum으로 변수도 선언할 수 있다.