본문 바로가기

재개발

List, Map 조금 더

List, Map, Set, 배열 등등을 컬렉션 이라고 한다.

List와 Map으로 이리저리 가지고 놀아보기.

class ModelInfo{
  String modelName="";
  double modelColumn=0;
  double modelRow=0;
  
  ModelInfo(this.modelName, this.modelColumn, this.modelRow);
  
  
  String returnAsString(){
    return '$modelName, $modelColumn x $modelRow';     
  }
  List<dynamic> returnAsList(){
    return [modelName, modelColumn, modelRow];    
  }
  Map<String, dynamic> returnAsMap(){
    return {'name': modelName, 'column': modelColumn, 'row': modelRow};
  }
}

void findModel(List<ModelInfo> model, String modelSelect){
  List<Map<String, dynamic>> modelAll=[];
  
      if(modelSelect =='All'){
        for(var i in model){
        modelAll.add(i.returnAsMap());
        }
        print(modelAll);
      }
      else {
        for(var i in model){
          if(i.modelName == modelSelect){
            print('Found: ${i.returnAsString()}');
            print(i.returnAsList());
            print(i.returnAsMap());
            return;
          }
        }
    }
  }
  


void extractModelName(List<ModelInfo> model){
  List<String> modelName =[];
    for(var i in model){
      modelName.add(i.modelName);
    }
  print('Names: $modelName');
}


void main() {  
  
final model = [
  ModelInfo('fourK', 3840, 2160),
  ModelInfo('twoK', 1920, 1080),
  ModelInfo('twoK1', 1920, 1081),
  ModelInfo('twoK2', 1920, 1082),
  ModelInfo('twoK3', 1920, 1083),
  ];

final modelSelect = 'twoK';
extractModelName(model);
findModel(model, modelSelect);

}

// 결과
Names: [fourK, twoK, twoK1, twoK2, twoK3]
Found: twoK, 1920 x 1080
[twoK, 1920, 1080]
{name: twoK, column: 1920, row: 1080}

// modelSelect = 'All'로 할 경우 결과
Names: [fourK, twoK, twoK1, twoK2, twoK3]
[{name: fourK, column: 3840, row: 2160}, {name: twoK, column: 1920, row: 1080}, {name: twoK1, column: 1920, row: 1081}, {name: twoK2, column: 1920, row: 1082}, {name: twoK3, column: 1920, row: 1083}]

'재개발' 카테고리의 다른 글

출시 완료. ㅋ  (0) 2023.01.08
출시 1차시도 실패. ㅋ  (1) 2023.01.07
List와 Map 가지고 놀기  (0) 2023.01.04
iOS 테스트 후 출시  (0) 2023.01.01
안드로이드 테스트 후 출시  (0) 2023.01.01