[플러터] 7. Dart (4) Collection

KangHo Lee's avatar
Dec 20, 2024
[플러터] 7. Dart (4) Collection

1. ArrayList와 HashMap 선언 방법

// List<int> list = [1,2,3, "문자열 안됨"]; List<dynamic> list1 = [1,2,3, "문자열 가능"]; var list = [1, 2, 3, "문자열도 됨"]; // ArrayList var map = { // HashMap "id":1, "name":"홍길동" }; void main() { print(list[1]); print(map["name"]); // 1. list 값추가 list.add(4); list.remove("문자열도 됨"); // 알아서 찾아서 지워줌 print(list); // 2. map 값 추가 map["phone"] = "0102222"; print(map); }
  • dynamic를 List의 타입으로 쓰면 다양한 타입을 List에 담을 수 있습니다.
  • var로 ArrayList, HashMap 선언이 가능합니다.

2. Deep Copy

var list = [1, 2, 3]; void main() { // 0. 깊은 복사 var r1 = [...list]; // 1. 요소 4 추가 var r2 = [...list, 4]; // 2. 요소 2 삭제 var r3 = list.where((e) => e != 2).toList(); // 3. 요소 2 만 복사 var r4 = list.where((e) => e == 2).toList(); // 4. 요소 2를 5로 수정 var r5 = list.map((e) => e == 2 ? 5 : e).toList(); // r5와 r6는 동일합니다. var r6 = list.map((e) { if (e == 2) { e = 5; } return e; }).toList(); }

1) 전개 연산자 ...

  • list를 깊은 복사를 통해 r1 list를 만듭니다.

2) 복사하면서 요소 추가

  • var r2 = [...list, 4];
    • list를 복사하면서 요소 4를 추가합니다.

3) where

  • 필터를 적용하면서 복사를 수행합니다.

4) map

  • list의 각 요소를 순회하면서 조건에 따라 수정을 진행합니다.
Share article

devleekangho