리스트 선언 및 초기화하는 방법을 소개합니다.
1. 리스트 선언
기본적으로 아래와 같이 리스트를 선언할 수 있습니다. 초기값은 설정하지 않았기 때문에 빈 리스트가 생성됩니다.
List<int> list = [];
var
을 사용하는 경우, <int>[]
으로 리스트의 타입을 지정하여 선언할 수 있습니다.
var list = <int>[];
2. 리스트 선언 및 초기화
아래와 같이 초기 값을 입력하여 리스트 선언과 동시에 초기화를 할 수 있습니다.
void main() {
List<int> list = [1,2,3,4,5];
print(list);
List<String> list2 = ["a", "b", "c", "d"];
print(list2);
}
Output:
[1, 2, 3, 4, 5]
[a, b, c, d]
다른 방법으로, List.from(Iterable)
을 사용하여 초기화 할 수 있습니다. 인자로 다른 리스트를 전달하면, 그 리스트의 요소들이 초기값으로 설정됩니다.
void main() {
List<int> list = List.from([1, 2, 3, 4, 5]);
print(list);
}
Output:
[1, 2, 3, 4, 5]
3. 고정된 크기의 리스트 선언 : List.filled()
List.filled(length, fill)
는 리스트의 크기가 length인 리스트를 생성하며, fill 값을 초기 값으로 초기화합니다.
void main() {
var list = List.filled(5, 0);
print(list);
}
Output:
[0, 0, 0, 0, 0]
이 리스트는 고정된 크기(fixed size)로 생성이 되는데, fixed-size
는 리스트의 크기가 변경되지 않는다는 의미입니다.
만약 remove()
, add()
등의 메소드로 리스트의 크기를 변경하려고 하면 아래와 같이 예외가 발생합니다.
void main() {
var list = List.filled(5, 0);
list.add(10);
}
Output:
Unhandled exception:
Unsupported operation: Cannot add to a fixed-length list
#0 FixedLengthListMixin.add (dart:_internal/list.dart:21:5)
#1 main
리스트 길이를 변경하지 않고, 값을 변경하는 것은 허용됩니다.
void main() {
var list = List.filled(3, 0);
print(list);
list[0] = 1;
list[1] = 2;
list[2] = 3;
print(list);
}
Output:
[0, 0, 0]
[1, 2, 3]
3.1 List.filled()로 가변적인 크기의 리스트 생성
List.filled(length, fill, growable: true)
는 지정된 크기의 리스트를 생성하며, 이 리스트는 add()
, remove()
등으로, 동적으로 길이를 변경할 수 있습니다.
void main() {
var list = List.filled(3, 0, growable: true);
print(list);
list.add(10);
list.add(20);
list.add(30);
print(list);
}
Output:
[0, 0, 0]
[0, 0, 0, 10, 20, 30]
4. 고정된 크기의 리스트 선언 : List.from()
List.from([...], growable: false)
로 고정된 크기의 리스트를 생성할 수 있습니다.
[...]
으로 초기 값을 설정할 수 있음growable: false
를 입력하면 고정된 크기(fixed-size)의 리스트 생성add()
등으로 리스트 크기를 변경하려고 하면 Exception이 발생
void main() {
var list = List.from([1, 2, 3], growable: false);
print(list);
}
Output:
[1, 2, 3]
5. 연속적인 값으로 리스트 초기화 : List.generate()
List.generate(length, generator)
를 이용하면 연속적은 숫자로 리스트를 초기화할 수 있습니다.
예를 들어, length를 5로 입력하면, generator 함수로 0에서 4까지의 index가 전달되며, 함수에서 리턴되는 값으로 초기값이 설정됩니다.
void main() {
var list = List.generate(5, (index) => index + 1);
print(list);
}
Output:
[1, 2, 3, 4, 5]
Related Posts
- Flutter/Dart - Future.delayed() 사용 방법
- Flutter/Dart - Stream 사용 방법
- Flutter/Dart - 파일, 디렉토리 삭제
- Flutter/Dart - 텍스트 파일 쓰기
- Flutter/Dart - 반복문 (for, while, for-in, forEach)
- Flutter/Dart - Static 변수, 메소드 선언
- Flutter/Dart - 텍스트 파일 읽기
- Flutter/Dart - 다양한 Null 체크 방법
- Flutter/Dart - Double을 Int로 변환
- Flutter/Dart - Double을 String으로 변환
- Flutter/Dart - String을 Double로 변환
- Flutter/Dart - String을 List로 변환
- Flutter/Dart - String에서 특정 문자열 Index 찾기
- Flutter/Dart - String 길이(length)
- Flutter/Dart - 몇 초 지연시키기, sleep
- Flutter/Dart - 날짜 계산, 년/월/일 더하고 빼기
- Flutter/Dart - 날짜 문자열을 DateTime으로 변환
- Flutter/Dart - 현재 시간 가져오기, DateTime
- Flutter/Dart - Map에 key-value 추가
- Flutter/Dart - Map 순회 방법
- Flutter/Dart - Map 선언 및 초기화
- Flutter/Dart - Map에서 Entry(key-value) 제거
- Flutter/Dart - key, value로 Map 정렬
- Flutter/Dart - 리스트 복사 방법
- Flutter/Dart - 리스트 합치는 방법
- Flutter/Dart - 리스트 최대값, 최소값 찾기
- Flutter/Dart - 리스트 요소 추가, 특정 위치 추가
- Flutter/Dart - 리스트 요소 제거
- Flutter/Dart - 리스트 합계, 평균 계산
- Flutter/Dart - 리스트 요소 값 변경, 찾기
- Flutter/Dart - 리스트 중복 제거
- Flutter/Dart - 리스트 정렬 (오름차순, 내림차순)
- Flutter/Dart - 리스트 자르기, 분리하기
- Flutter/Dart - 변수 타입 체크
- Flutter/Dart - 리스트 필터링