다트의 리스트(List)와 배열(Array)의 차이는 무엇인가요?
_____A. 다트(Dart)에서는 일반적으로 배열(Array)라는 별도의 자료구조는 존재하지 않고, 리스트(List)가 배열과 같은 역할을 합니다. 하지만 개념적으로 두 용어의 차이를 이해하기 위해 다음과 같이 설명할 수 있습니다:
---
1. 다트에서 배열(Array)이란?
- 다트에는 전통적인 의미의 배열(Array)이 없습니다.
- 배열은 보통 고정된 크기를 가지며, 동일한 타입의 데이터를 연속적으로 저장하는 자료구조를 의미합니다.
- 다트에서는 이런 고정 길이 배열이 따로 없고, 대신 고정 길이 리스트 (Fixed-length List)를 통해 비슷한 기능을 제공합니다.
---
2. 다트에서 리스트(List)란?
- 다트의 `List`는 동적 크기(dynamic size)를 가지는 컬렉션입니다.
- 다양한 타입의 데이터를 저장할 수 있지만 타입 안전성 을 위해 기본적으로 동일 타입 요소를 저장합니다.
- 크기를 자유롭게 변경할 수 있으며, 요소를 추가/삭제하는 것이 가능합니다.
- 예: `var myList = [1, 2, 3];` — 크기가 동적으로 변경 가능
---
3. 고정 길이 리스트와 growable 리스트의 차이
| 구분 | Growable List (일반 리스트) | Fixed-length List (고정 길이 리스트) |
|--------------------|-----------------------------------|--------------------------------------|
| 크기 변경 가능 여부 | 가능 (요소 추가/제거 자유로움) | 불가능 (생성 시 크기 고정) |
| 생성 방법 | `List
| 요소 변경 | 가능 | 가능 |
| 요소 추가/제거 | 가능 | 불가능 |
| 메모리 연속성 | 보장되지 않음 | 어느 정도 배열과 유사한 구조로 메모리 연속성 기대 |
| 사용 용도 | 일반적인 배열처럼 사용 | C 스타일 배열처럼 고정크기 사용 시 |
---
4. 요약
| 리스트(List) | 배열(Array) (고정 길이 리스트로 비유) |
|---------------------------------------------|--------------------------------------|
| 동적으로 크기가 변하는 컬렉션 | 고정된 크기를 가지는 컬렉션 |
| `var list = [1, 2, 3];` | `var fixedList = List.filled(3, 0);` |
| 요소 추가, 제거 가능 | 요소 추가, 제거 불가, 수정만 가능 |
| 대부분의 배열 용도로 사용 | 배열처럼 연산 성능을 중시하는 경우 사용 |
---
5. 참고: 다트 기본 리스트 생성 방법
- Growable List (가변 리스트)
```dart
var list =
list.add(10);
list.add(20);
```
- Fixed-length List (고정 길이 리스트)
```dart
var fixedList = List
fixedList[0] = 10; // 가능
// fixedList.add(20); // 오류 발생
```
---
결론: 다트에서는 일반적으로 `List`가 배열(Array)의 역할을 하며, 리스트의 종류에 따라 가변 혹은 고정 크기를 가질 수 있습니다. 따라서 다트에서 배열과 리스트의 엄밀한 구분보다는 `List`를 어떻게 생성하고 사용하는지에 집중하면 됩니다.
작성자:
김지우 [비회원]
| 작성일자: 1년 전
2024-09-19 01:52:33
조회수: 136 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 136 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.