[Dart] 리스트(List)에 요소 추가하기

Dart에서 리스트(List)는 데이터를 저장하고 관리하는 중요한 자료 구조입니다. 특히 리스트에 요소를 추가하는 방법을 이해하면 효율적인 데이터 처리가 가능합니다. 본 포스팅에서는 Dart List에 요소를 추가하는 다양한 방법을 코드 예제와 함께 자세히 설명하겠습니다.

 

 

1. Dart List란?

Dart의 List는 배열(Array)과 유사한 개념으로, 여러 개의 값을 저장할 수 있는 가변 길이 컬렉션입니다. List는 0부터 시작하는 인덱스를 사용하여 요소에 접근할 수 있습니다.

void main() {
  List<String> fruits = ['Apple', 'Banana', 'Cherry'];
  print(fruits); // ['Apple', 'Banana', 'Cherry']
}

Dart의 List에는 다양한 추가 방법이 존재하며, 목적과 상황에 따라 적절한 방법을 선택하는 것이 중요합니다.

 

 

2. Dart List에 요소 추가하는 방법

 

2.1 add() 메서드 사용하기 (단일 요소 추가)

add() 메서드는 리스트 끝에 하나의 요소를 추가하는 가장 기본적인 방법입니다.

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

 

2.2 addAll() 메서드 사용하기 (여러 요소 추가)

addAll() 메서드는 리스트 끝에 한 번에 여러 개의 요소를 리스트에 추가할 때 사용합니다.

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

 

2.3 insert() 메서드 사용하기 (특정 위치에 추가)

insert() 메서드는 리스트의 특정 인덱스에 요소를 추가할 때 사용합니다.

void main() {
  List<String> colors = ['Red', 'Blue', 'Green'];
  colors.insert(1, 'Yellow');
  print(colors); // ['Red', 'Yellow', 'Blue', 'Green']
}

 

2.4 insertAll() 메서드 사용하기 (특정 위치에 여러 요소 추가)

insertAll() 메서드는 특정 위치에 여러 개의 요소를 추가할 때 유용합니다.

void main() {
  List<String> animals = ['Dog', 'Cat', 'Bird'];
  animals.insertAll(1, ['Tiger', 'Elephant']);
  print(animals); // ['Dog', 'Tiger', 'Elephant', 'Cat', 'Bird']
}

 

2.5 spread 연산자 (...) 사용하기

Dart에서는 ...(spread 연산자)를 사용하여 리스트를 추가할 수 있습니다.

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

 

2.6 + 연산자 사용하기 (리스트 병합)

+ 연산자를 사용하면 두 개의 리스트를 쉽게 결합할 수 있습니다.

void main() {
  List<String> list1 = ['A', 'B'];
  List<String> list2 = ['C', 'D'];
  List<String> combinedList = list1 + list2;
  print(combinedList); // ['A', 'B', 'C', 'D']
}

 

2.7 리스트를 수정 가능한 상태로 만들기

Dart에서 List는 기본적으로 가변형(mutable)입니다. 하지만 const 키워드를 사용하면 변경이 불가능한 리스트를 만들 수 있습니다.

void main() {
  List<int> immutableList = const [1, 2, 3];
  // immutableList.add(4); // 오류 발생 (수정 불가)
}

만약 변경 가능하도록 만들고 싶다면 List.of()를 사용하면 됩니다.

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

 

 

3. 리스트 요소 추가 시 주의할 점

  • 인덱스 범위 초과 주의: insert()나 insertAll()을 사용할 때 존재하지 않는 인덱스에 접근하면 오류가 발생할 수 있습니다.
  • 불변 리스트 수정 불가: const 키워드로 선언된 리스트는 수정할 수 없으므로 List.of()를 사용하여 복사해야 합니다.
  • 성능 고려: addAll()이나 + 연산자를 사용하여 리스트를 확장하는 것은 새로운 리스트를 생성하기 때문에 대량의 데이터 처리 시 성능에 영향을 줄 수 있습니다.
 
 

4. 결론

Dart에서 리스트에 요소를 추가하는 방법은 매우 다양하며, 사용 목적에 따라 적절한 방법을 선택해야 합니다.

  • 단일 요소 추가: add()
  • 여러 요소 추가: addAll(), spread 연산자 ...
  • 특정 위치에 추가: insert(), insertAll()
  • 리스트 병합: + 연산자

Dart의 리스트 활용 방법을 잘 익혀서 코드의 가독성과 효율성을 높여보세요! 😊