Code/Flutter

Dart 리스트, 맵

하말 ⍺ 2023. 10. 9. 02:01
반응형

* 해당 글은 '나무위키'와 책'내일은 플러터'의 내용을 요약 정리 하였습니다.

List, Map

List<int> num = [1, 2, 3, 4, 5]; // 정수형
List<String> str = ['a', 'b', 'c']; // 문자형
List<dynamic> mix = [1, 'b', true]; // 다이나믹

List<int> copynum = List.from(num); // from 복사
List<int> copynum2 = num.toList(); // tolist 복사

List<int> sumnum = copynum + copynum2; // list 합치기 addAll로도 가능

void main() {
  print('리스트길이');
  print(num.length);
  
  print('bool로 빈리스트인지 확인');
  bool num_l = num.length == 0;
  print(num_l);
  
  print('리스트 요소 추가');
  str.add('dd');
  print(str);
  
  print(' 리스트에 다수 요소 추가');
  str.addAll(['cc', 'ff']);
  print(str);
  
  print('리스트 인덱스2자리에(0부터 시작하므로 3번째) "in" 삽입');
  str.insert(2, 'in');
  print(str);
  
  print('// 리스트 내 요소 접근');
  print(str[2]);
  
  print('// 리스트 요소 변경');
  str[2] = 'change';
  print(str);
  
  print('// 리스트 요소 제거');
  str.remove('a');
  print(str);
  
  print('// 인덱스로 리스트 요소 제거');
  str.removeAt(0);
  print(str);
  
  print('// for 문으로 리스트 순회');
  for (dynamic i in mix) {
    print(i);
  }
  
  print('// toEach 리스트 순회');
  mix.forEach((i) {
    print(i);
  });
  
  print('  // 2차원 리스트');
  List<List<dynamic>> two = [
    ['*', '*', '*', '*', '*'],
    ['*', ' ', ' ', ' ', '*'],
    ['*', ' ', 'p', ' ', '*'],
    ['*', ' ', ' ', ' ', '*'],
    ['*', '*', '*', '*', '*']
  ];
  print(two);
  
  print('// 2차원 리스트 출력하기');
  for (int i = 0; i < two.length; i++) {
    for (int j = 0; j < two[i].length; j++) {
      stdout.write(two[i][j]);
    }
    stdout.write('\n'); // 행사이 공백
  }
  
  print('--------------');
  // Map 키-값 쌍으로 이루어진 컬렉션 타입
  // Map<키타입, 값타입> 맵이름 = {키1:값1,키2:값2,키3:값3}

  Map<int, dynamic> map1 = {
    1: 'a',
    2: 22,
    3: {4: 'inside'}
  };

  Map<int, dynamic> map2 = {}; // 빈 Map 생성
  Map<int, dynamic> map3 = new Map(); // new 를 이용한 빈 Map 생성
  print('');
  print(map1);
  print(map2);
  print(map3);

  print('// map 내부 값요소 출력 맵이름[키]');
  print(map1[1]);
  print(map1[3][4]);
  
  print('  // map 요소 추가');
  map2[5] = 'abc';
  print(map2);
}




/* 출력값
리스트길이
5
bool로 빈리스트인지 확인
false
리스트 요소 추가
[a, b, c, dd]
 리스트에 다수 요소 추가
[a, b, c, dd, cc, ff]
리스트 인덱스2자리에(0부터 시작하므로 3번째) "in" 삽입
[a, b, in, c, dd, cc, ff]
// 리스트 내 요소 접근
in
// 리스트 요소 변경
[a, b, change, c, dd, cc, ff]
// 리스트 요소 제거
[b, change, c, dd, cc, ff]
// 인덱스로 리스트 요소 제거
[change, c, dd, cc, ff]
// for 문으로 리스트 순회
1
b
true
// toEach 리스트 순회
1
b
true
  // 2차원 리스트
[[*, *, *, *, *], [*,  ,  ,  , *], [*,  , p,  , *], [*,  ,  ,  , *], [*, *, *, *, *]]
// 2차원 리스트 출력하기
*****
*   *
* p *
*   *
*****
--------------

{1: a, 2: 22, 3: {4: inside}}
{}
{}
// map 내부 값요소 출력 맵이름[키]
a
inside
  // map 요소 추가
{5: abc}
*/