guricode

잘 모르면 애매한 Dart 간단 정리 - Collections (1) 본문

앱/Flutter&Dart

잘 모르면 애매한 Dart 간단 정리 - Collections (1)

agentrakugaki 2025. 6. 24. 11:50

 

Dart에서 컬렉션(Collection)은 여러 값을 그룹으로 묶어서 효율적으로 관리할 수 있는 친구들!

대표적으로 List, Set, Map이 있음.

 List란?

List는 순서가 있는 값들이 묶인 형태. 배열이라고도 불린다.

List<int> numbers = [1, 2, 3, 4, 5];

각각의 요소는 , 로 구분함.

요소 없는 List도 가능

List<int> numbers = [];

타입 생략하고 선언도 가능

var numbers = [1, 2, 3, 4, 5]; // List<int>로 추론

변경하지 않는다면 final이나 const로도 선언 가능

final numbers = [1, 2, 3, 4, 5];
const names = ['Alice', 'Bob', 'Henry'];

비어 있는 리스트 선언 예시

var numbers = [];
var names = <String>[];

요소 타입이 섞여 있어도 오류가 안 나는 경우

const fruits = ['사과', '파인애플', '오렌지', 8];
print(fruits.runtimeType); // List<Object>

Stringint의 상위 클래스인 Object로 추론됨


 Index로 요소 접근

List<int> numbers = [1, 2, 3, 4, 5];
print(numbers[0]); // 1
  • Index는 0부터 시작
  • 음수 Index 사용 시 RangeError 발생

Index로 값 변경도 가능

var numbers = [1, 2, 3, 4, 5];
numbers[3] = 2;
print(numbers[3]); // 2

const 리스트는 요소 변경 불가

const numbers = [1, 2, 3, 4, 5];
numbers[3] = 2; // 오류 발생

 

 유용한 프로퍼티와 메서드

length

var fruits = ['사과', '파인애플', '오렌지'];
print(fruits.length); // 3
print(fruits[fruits.length - 1]); // 오렌지

isEmpty / isNotEmpty

var numbers = [];
print(numbers.isEmpty); // true

var fruits = ['사과', '파인애플'];
print(fruits.isNotEmpty); // true

indexOf()

var fruits = ['사과', '파인애플', '오렌지'];
print(fruits.indexOf('파인애플')); // 1
print(fruits.indexOf('포도')); // -1

add(), addAll()

var fruits = ['사과', '오렌지'];
fruits.add('복숭아');
fruits.addAll(['포도', '귤']);

remove(), removeAt()

fruits.remove('포도');
fruits.removeAt(0);

clear()

fruits.clear();
print(fruits.isEmpty); // true

 요약

  • List는 순서가 있는 값의 집합
  • 요소 추가/삭제/변경/검색 등 다양한 메서드 지원
  • 타입을 명확히 지정하면 안전하게 쓸 수 있음

이건 List 하나만 정리한 거고, 다음엔 Set이나 Map도 정리할 예정