반응형
Dart의 컬렉션(Collection)은 여러 요소를 관리하고 조작할 수 있는 데이터 구조를 제공합니다.
주요 컬렉션 타입으로는 리스트(List), 셋(Set), 맵(Map)이 있습니다.
각각의 컬렉션은 다양한 용도로 사용될 수 있으며, Dart는 이러한 컬렉션을 쉽게 사용할 수 있도록 다양한 메서드와 연산자를 제공합니다.
1. List
리스트(List)는 순서가 있는 요소의 집합으로, 배열과 유사합니다. 요소의 순서를 유지하며, 동일한 값을 중복해서 가질 수 있습니다.
생성 및 초기화
void main() {
// 빈 리스트 생성
List<int> numbers = [];
// 초기값을 가지는 리스트 생성
List<String> fruits = ['Apple', 'Banana', 'Orange'];
// 리스트에 요소 추가
numbers.add(1);
numbers.add(2);
numbers.add(3);
// 인덱스를 사용하여 요소 접근
print(fruits[0]); // Apple
// 리스트 길이
print(fruits.length); // 3
}
주요 메서드
void main() {
List<String> fruits = ['Apple', 'Banana', 'Orange'];
// 요소 추가
fruits.add('Grape');
// 여러 요소 추가
fruits.addAll(['Mango', 'Pineapple']);
// 요소 제거
fruits.remove('Banana');
// 인덱스로 요소 제거
fruits.removeAt(1);
// 조건에 맞는 모든 요소 제거
fruits.removeWhere((fruit) => fruit.startsWith('A'));
// 요소 포함 여부 확인
print(fruits.contains('Orange')); // true
// 요소의 인덱스 찾기
print(fruits.indexOf('Mango')); // 2
}
2. Set
셋(Set)은 순서가 없는 고유한 요소의 집합입니다. 동일한 값을 중복해서 가질 수 없습니다.
생성 및 초기화
void main() {
// 빈 셋 생성
Set<int> numbers = {};
// 초기값을 가지는 셋 생성
Set<String> fruits = {'Apple', 'Banana', 'Orange'};
// 셋에 요소 추가
numbers.add(1);
numbers.add(2);
numbers.add(3);
// 요소 추가 (중복된 요소는 추가되지 않음)
fruits.add('Apple');
// 셋 길이
print(fruits.length); // 3
}
주요 메서드
void main() {
Set<String> fruits = {'Apple', 'Banana', 'Orange'};
// 요소 추가
fruits.add('Grape');
// 여러 요소 추가
fruits.addAll({'Mango', 'Pineapple'});
// 요소 제거
fruits.remove('Banana');
// 조건에 맞는 모든 요소 제거
fruits.removeWhere((fruit) => fruit.startsWith('A'));
// 요소 포함 여부 확인
print(fruits.contains('Orange')); // true
}
3. Map
맵(Map)은 키-값 쌍으로 이루어진 컬렉션입니다. 각 키는 고유하며, 키를 통해 값에 접근할 수 있습니다.
생성 및 초기화
void main() {
// 빈 맵 생성
Map<String, int> ages = {};
// 초기값을 가지는 맵 생성
Map<String, int> scores = {
'Alice': 90,
'Bob': 85,
'Charlie': 95,
};
// 맵에 요소 추가
ages['John'] = 25;
ages['Doe'] = 30;
// 키를 사용하여 값 접근
print(scores['Alice']); // 90
// 맵 길이
print(scores.length); // 3
}
주요 메서드
void main() {
Map<String, int> scores = {
'Alice': 90,
'Bob': 85,
'Charlie': 95,
};
// 요소 추가
scores['David'] = 88;
// 요소 제거
scores.remove('Bob');
// 모든 키 가져오기
print(scores.keys); // (Alice, Charlie, David)
// 모든 값 가져오기
print(scores.values); // (90, 95, 88)
// 특정 키의 값 업데이트
scores.update('Alice', (value) => 92);
// 키 포함 여부 확인
print(scores.containsKey('Charlie')); // true
// 값 포함 여부 확인
print(scores.containsValue(88)); // true
}
결론
Dart의 컬렉션은 데이터를 저장하고 조작하는 데 매우 유용한 도구입니다. 리스트(List)는 순서가 있는 요소의 집합을 다루며, 셋(Set)은 고유한 요소의 집합을 다루고, 맵(Map)은 키-값 쌍을 다룹니다. 이러한 컬렉션을 사용하여 데이터를 효율적으로 관리하고 처리할 수 있습니다.
참고 문서
반응형
'프론트엔드 > Flutter' 카테고리의 다른 글
dart 반복문 정리 (0) | 2024.07.21 |
---|---|
dart 조건문 정리 (0) | 2024.07.21 |
dart 연산자 (0) | 2024.07.21 |
Dart에서 변수 초기화 null Safety 와 late 키워드 (0) | 2024.07.18 |
dart 3 언어 주요 변경 사항 및 새로운 기능 (0) | 2024.07.18 |