Flutter

Dart 문법 - 컬렉션

whs5758 2025. 8. 18. 19:00

List

List는 데이터의 중복이 가능하고 순서가 있는 자료를 담는 컬렉션 입니다. 자료는 순차적으로 index(번호)를 생성하여 쌓이게 됩니다. 이때 <> 타입을 사용하게 되는데 이를 제네릭 타입이라고 합니다.

Dart는 타입 추론을 제공하기 때문에 var로 선언할 수 있습니다.

 

import 'dart:math';

void main() {
  // List
  List<int> nums = [1, 2, 3, 4];
  print(nums[0]);
  print(nums[1]);
  print(nums[2]);
  print(nums[3]);

  print("================================");

  var nums1 = [1.1, 2.2, 3.3, 4.4];
  print(nums1[0]);
  print(nums1[1]);
  print(nums1[2]);
  print(nums1[3]);
  print(nums1.runtimeType);

}
1
2
3
4
================================
1.1
2.2
3.3
4.4
List<double>

 

Map

Map은 키(key)와 값(value)의 쌍으로 이루어진 컬렉션입니다. List는 index 번호로 값을 찾지만 Map은 키(key)로 값을 찾아냅니다.

import 'dart:math';

void main() {
  // Map
  Map<String, dynamic> user = {"id": 1, "username": "abc"};
  print(user["id"]);
  print(user["username"]);
  print(user.runtimeType);

}
1
abc
_Map<String, dynamic>

 

Set 

Set은 집합을 표현하는 컬렉션입니다. 데이터의 중복이 허용되지 않기 때문에 로또 번호 생성기 등을 만들 때 유용하게 사용할 수 있습니다. Set은 순서가 없습니다.

import 'dart:math';

void main() {
  // Set
  // 순서가 없고 중복을 못함
  Set<int> lotto = {};
  Random r = Random();
  lotto.add(r.nextInt(45) + 1);
  lotto.add(r.nextInt(45) + 1);
  lotto.add(r.nextInt(45) + 1);
  lotto.add(r.nextInt(45) + 1);
  lotto.add(r.nextInt(45) + 1);
  lotto.add(r.nextInt(45) + 1);
  print(lotto);

  List<int> lottoList = lotto.toList();
  lottoList.sort();
  print(lottoList);
}
{16, 7, 6, 37, 14, 33}
[6, 7, 14, 16, 33, 37]

 

'Flutter' 카테고리의 다른 글

Dart 문법 - final 과 const  (0) 2025.08.18
Dart 문법 - 반복문  (1) 2025.08.18
Dart 문법 - 추상 클래스  (1) 2025.08.18
Dart 문법 - Mixin  (0) 2025.08.18
Dart 문법 - 상속  (1) 2025.08.18