반응형

Map이란 개념이 좀 혼동이 온다. 

과연 Map은 List인가.. 함수인가? 

 

이 문제를 해결하기 위해서는 CS를 공부해야 하는게 맞는 것 같다.

 

무튼 지금 내 수준에서는 이해 못하는게 당연하다 

그러니 이런게 있구나 하고 넘어가자 

 

 

 

 

toList

1번 주문은 5000원

2번 주문은 12000원 

3번 주문은 7000원 

이란 데이터가 있는 

order Map을 만들었다. 

 

 

 

void main(){
  
  
   //맵 만들기 , 주문 
  Map order = {
    '1' : '5000원',
    '2' : '12000원',
    '3'  : '7000원'
    
  };
  
  //맵의 keys값과 values값을 리스트로 만드는 방법, Map자체를 리스트화 할 수는 없음 
  print(order); //현재 Map상태
  print(order.keys.toList());  //현재 List상태
  print(order.values.toList()); //현재 List상태

 

Map은 다른 List와는 달리 {}을 사용한다. 다른 List는 [] 을 사용한다. 

이런 부분 차이가 Map이 리스트인지, 함수인지 헷갈리는 것 같다. 

 

결과값을 보면 print(order)는  {} 안에 값이 나온다. 

그 밑에 toList를 단 결과값은 [] 안에 값이 나온다. List라는 이야기이다. 

{1: 5000원, 2: 12000원, 3: 7000원} //print(order);
[1, 2, 3]  //print(order.keys);
[5000원, 12000원, 7000원] //print(order.values);

 

 

entry

entry는 key와 value를 세트로 만들어서 함께 보여주는 기능이다. 

 

 

final orderdecs= order.entries.map((entry){
   final key = order.keys;
    final value = order.values;
    
    return "주문번호 $key 는  $value 이다." ;
  });
  
  print(orderdecs);

요래 나온다. 아마 value= order.values; => value =order.value로 바꾸면 "주문번호 1는 5000원이다", "주문번호 2는 12000원이다", 주문번호 3는 7000원이다" 로 나올 것인데. 패키지를 안깔아서 아래처럼 나오는 것 같다. 

(주문번호 (1, 2, 3) 는  (5000원, 12000원, 7000원) 이다., 주문번호 (1, 2, 3) 는  (5000원, 12000원, 7000원) 이다., 주문번호 (1, 2, 3) 는  (5000원, 12000원, 7000원) 이다.)

 

 

asMap

List에 인덱스 값을 함께 보여주는 기능이다. 

List <int>number=[
    10,
    20,
    30,
    40,
    50
  ];
  
  
  final order_o = number.asMap();
  print(order_o);

List의 index의 값을 함께 보여준다. 하지만 List가 Map의 형태로 변한다. {} 가 추가 되었다. 

{0: 10, 1: 20, 2: 30, 3: 40, 4: 50}

 

반응형

+ Recent posts