[Dart] List 초기화하기

Dart에서 List(리스트) 타입은 여러 값을 순서대로 나열한 변수에 저장할 때 사용됩니다. 이 글에서는 다양한 방식으로 Dart에서 List를 초기화하는 방법을 자세히 설명합니다.

 

 

1. 기본적인 List 초기화 방법

Dart에서 List를 선언하고 초기화하는 기본적인 방법은 List 클래스를 사용하는 것입니다.

void main() {
  List<int> numbers = []; // 빈 리스트 선언
  numbers.add(1);
  numbers.add(2);
  numbers.add(3);
  print(numbers); // [1, 2, 3]
}

위 코드에서는 빈 리스트를 선언한 후 add() 메서드를 사용하여 요소를 추가했습니다.

 

 

2. 리스트를 생성하면서 초기값을 설정하기

Dart에서는 리스트를 생성할 때 초기값을 설정할 수도 있습니다.

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

위 방식은 가장 간단한 초기화 방법으로, 코드가 직관적이고 가독성이 뛰어납니다.

 

 

3. List.filled()를 이용한 고정 길이 리스트 생성

만약 일정한 크기를 가진 리스트를 초기화하고 싶다면 List.filled()를 사용할 수 있습니다.

void main() {
  List<int> fixedList = List.filled(5, 0);
  print(fixedList); // [0, 0, 0, 0, 0]
}

이 방식은 특정한 크기를 가진 리스트를 초기화할 때 유용합니다. 단, 생성된 리스트는 모든 요소가 동일한 값을 가지므로 변경하려면 별도로 요소를 수정해야 합니다.

 

 

4. List.generate()를 사용한 동적 리스트 생성

List.generate()를 사용하면 반복적으로 값을 초기화할 수 있습니다.

void main() {
  List<int> squares = List.generate(5, (index) => index * index);
  print(squares); // [0, 1, 4, 9, 16]
}

이 방법을 사용하면 특정 규칙을 가진 리스트를 손쉽게 생성할 수 있습니다.

 

 

5. 빈 리스트를 null-safe하게 선언하기

Dart에서는 null-safety를 지원하기 때문에 리스트 선언 시 타입 뒤에 ?를 추가해주면 null 값이 저장될 수 있습니다.

void main() {
  List<int>? nullableList;
  print(nullableList); // null
}

nullableListnull 값을 가질 수 있으므로, 필요할 때만 리스트를 초기화하는 방식으로 사용할 수 있습니다.

 

 

6. const List를 사용한 불변 리스트 선언

변경할 필요가 없는 리스트라면 const 키워드를 사용하여 불변 리스트를 선언할 수 있습니다.

void main() {
  const List<int> immutableList = [1, 2, 3];
  print(immutableList); // [1, 2, 3]
}

불변 리스트는 값이 변경되지 않도록 보장하므로, 데이터의 무결성을 유지하고 메모리 관리를 효율적으로 할 수 있습니다.

 

 

7. 리스트를 동적으로 추가 및 수정하기

Dart에서는 add(), addAll(), remove(), removeAt() 등의 메서드를 사용하여 리스트를 동적으로 조작할 수 있습니다.

void main() {
  List<String> names = ['Alice', 'Bob'];
  names.add('Charlie'); // 요소 추가
  names.remove('Bob'); // 요소 제거
  print(names); // ['Alice', 'Charlie']
}

이 방법을 사용하면 리스트를 동적으로 관리할 수 있습니다.

 

 

결론

Dart에서 List를 초기화하는 방법에는 여러 가지가 있으며, 목적에 따라 적절한 방법을 선택해야 합니다.

  • 간단한 리스트 초기화: [] 또는 [value1, value2]
  • 고정 크기 리스트: List.filled(size, value)
  • 동적 생성: List.generate(size, (index) => value)
  • 불변 리스트: const List
  • 동적 조작: add(), remove(), addAll()

이제 자신에게 맞는 리스트 초기화 방법을 선택하여 효율적인 Dart 프로그래밍을 해보세요! 😊