Dart 학습: 컬렉션
Dart에서는 데이터를 효율적으로 저장하고 관리하기 위해 다양한 컬렉션 타입을 제공합니다. 이번 글에서는 리스트, 맵, 세트에 대해 알아보겠습니다.
1. 리스트: 리스트 생성, 접근, 수정
리스트(List)는 여러 값을 저장할 수 있는 순서가 있는 컬렉션입니다. 리스트는 인덱스를 사용하여 접근하고 수정할 수 있습니다.
리스트 생성: 리스트는 []를 사용하여 생성할 수 있으며, 타입을 명시할 수도 있습니다.
List<int> numbers = [1, 2, 3, 4, 5];
List<String> fruits = ['apple', 'banana', 'cherry'];
print(numbers); // [1, 2, 3, 4, 5] 출력
print(fruits); // [apple, banana, cherry] 출력
}
리스트 접근 : 인덱스를 사용하여 리스트의 요소에 접근할 수 있습니다. 인덱스는 0부터 시작합니다.
List<String> fruits = ['apple', 'banana', 'cherry'];
print(fruits[0]); // apple 출력
print(fruits[1]); // banana 출력
print(fruits[2]); // cherry 출력
}
리스트 수정 : 리스트의 요소를 인덱스를 통해 수정하거나, 새로운 요소를 추가할 수 있습니다.
List<String> fruits = ['apple', 'banana', 'cherry'];
// 요소 수정
fruits[1] = 'blueberry';
print(fruits); // [apple, blueberry, cherry] 출력
// 요소 추가
fruits.add('orange');
print(fruits); // [apple, blueberry, cherry, orange] 출력
// 요소 제거
fruits.remove('apple');
print(fruits); // [blueberry, cherry, orange] 출력
}
2. 맵: 키-값 쌍, 접근, 수정
맵(Map)은 키-값 쌍을 저장하는 컬렉션입니다. 각 키는 고유해야 하며, 값을 통해 접근하고 수정할 수 있습니다.
맵 생성 : 맵은 {}를 사용하여 생성할 수 있으며, 키와 값의 타입을 명시할 수도 있습니다.
Map<String, int> ages = {
'Alice': 25,
'Bob': 30,
'Charlie': 35
};
print(ages); // {Alice: 25, Bob: 30, Charlie: 35} 출력
}
맵 접근 : 키를 사용하여 맵의 값을 접근할 수 있습니다.
Map<String, int> ages = {
'Alice': 25,
'Bob': 30,
'Charlie': 35
};
print(ages['Alice']); // 25 출력
print(ages['Bob']); // 30 출력
}
맵 수정 : 맵의 값을 키를 통해 수정하거나, 새로운 키-값 쌍을 추가할 수 있습니다.
Map<String, int> ages = {
'Alice': 25,
'Bob': 30,
'Charlie': 35
};
// 값 수정
ages['Bob'] = 32;
print(ages); // {Alice: 25, Bob: 32, Charlie: 35} 출력
// 새로운 키-값 쌍 추가
ages['Dave'] = 40;
print(ages); // {Alice: 25, Bob: 32, Charlie: 35, Dave: 40} 출력
// 키-값 쌍 제거
ages.remove('Alice');
print(ages); // {Bob: 32, Charlie: 35, Dave: 40} 출력
}
3. 세트: 세트 생성, 세트 연산
세트(Set)는 중복되지 않는 요소들의 컬렉션입니다. 세트는 수학적 집합 연산을 지원합니다.
세트 생성: 세트는 {}를 사용하여 생성할 수 있으며, 타입을 명시할 수도 있습니다.
Set<int> numbers = {1, 2, 3, 4, 5};
print(numbers); // {1, 2, 3, 4, 5} 출력
}
세트 연산: 세트는 요소를 추가하거나 제거할 수 있으며, 다양한 집합 연산을 지원합니다.
Set<int> numbers = {1, 2, 3, 4, 5};
// 요소 추가
numbers.add(6);
print(numbers); // {1, 2, 3, 4, 5, 6} 출력
// 요소 제거
numbers.remove(3);
print(numbers); // {1, 2, 4, 5, 6} 출력
}
집합 연산: 세트는 합집합, 교집합, 차집합 등의 집합 연산을 지원합니다.
Set<int> setA = {1, 2, 3};
Set<int> setB = {3, 4, 5};
// 합집합
Set<int> union = setA.union(setB);
print(union); // {1, 2, 3, 4, 5} 출력
// 교집합
Set<int> intersection = setA.intersection(setB);
print(intersection); // {3} 출력
// 차집합
Set<int> difference = setA.difference(setB);
print(difference); // {1, 2} 출력
}
이 글에서는 Dart의 주요 컬렉션인 리스트, 맵, 세트에 대해 알아보았습니다. 이러한 컬렉션을 이해하고 활용하면 데이터를 효율적으로 저장하고 관리할 수 있습니다. 다음 단계에서는 예외 처리에 대해 학습해보세요. Happy Coding!
'프로그래밍 > Dart' 카테고리의 다른 글
[Dart] 7. Dart의 "비동기 프로그래밍" (0) | 2024.06.19 |
---|---|
[Dart] 6. Dart의 "예외 처리" (0) | 2024.06.19 |
[Dart] 4. Dart의 "객체 지향 프로그래밍 (OOP)" (0) | 2024.06.19 |
[Dart] 3. Dart의 "기본 문법" (0) | 2024.06.19 |
[Dart] 2. Dart의 "기본 문법" (0) | 2024.06.19 |