Dart
[Dart] .generate와 .filled 사용하여 리스트 만들기
mjjayce
2025. 3. 27. 11:43
.generate
주어진 길이만큼 리스트를 생성하고, 각 요소에 대해 반복적인 패턴의 값을 할당하는 데 사용한다.
List.generate() 문법
List.generate(length, (index) => expression);
length - 생성할 리스트의 길이
index - 인덱스. 0부터 시작함. (인덱스 사용하지 않는 경우 _ )
expression - 각 인덱스에 들어갈 값. 동일값 or 계산식
장점
반복문 대신 함수로 깔끔하게 리스트 생성 가능
반복적인 패턴이나 계산식을 사용하는 리스트를 생성 가능
예시
- 0~9까지의 숫자 리스트 만들기
List<int> numbers = List.generate(10, (i) => i);
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
.filled
주어진 길이만큼 리스트를 생성하고, 모든 요소에 같은 값을 할당함
List.filled 문법
List.filled(length, E fill, {bool growable = false})
length - 생성할 리스트의 길이
fill - 각 요소에 채울 값
growable - 기본값 false. true로 설정하면 리스트 크기 변경 가능
장점
같은 값을 채운 리스트를 쉽게 생성할 수 있음.
리스트를 만들고 초기값을 부여할 때 유용함
예시
- 기본 int 리스트 만들기
List<int> zeros = List.filled(1000, 0);
1000개나 되는 리스트의 초기값을 일일히 지정해주지 않고 함수로 표현할 수 있다.
.generate, .filled 동시 사용 예시
- 빈 2차원 리스트 만들기
// 3x3 빈 배열 보드 초기화
List<List<String>> board = List.generate(3, (_) => List.filled(3,''));
// 리트코드 1275번 문제
// .filled 를 사용해 [' ', ' ', ' '] 생성
// .generate 를 사용해 [[' ', ' ', ' '], [' ', ' ', ' '], [' ', ' ', ' ']] 생성. 즉, 빈 3 x 3 보드 생성