AI Reading
Quick summary of this article
Dart provides three main collection types for storing multiple values: lists, sets, and maps. Lists are ordered and allow duplicates, sets store only unique values with no order, and maps associate unique keys with values. Each collection supports adding, removing, and checking for elements.
- Lists are ordered collections where each element has an index starting at 0, and they can grow or shrink dynamically.
- Sets are unordered collections that automatically ignore duplicate elements when added.
- Maps store data as key-value pairs, where each key must be unique and is used to look up its associated value.
- All three collections support common operations like adding, removing, and checking for the presence of elements or keys.
- Lists allow duplicate elements, while sets and map keys enforce uniqueness.
Dart Collections
In Dart, collections are used to store multiple values of similar or different types. Dart provides several built-in collection types that serve different purposes, such as lists, sets, and maps. Let’s explore each of these collection types with examples:
1. Lists
Lists in Dart are ordered collections of elements, where each element is indexed starting from 0. Lists can grow or shrink dynamically.
Example:
void main() {
// Creating a list of integers
List<int> numbers = [1, 2, 3, 4, 5];
// Accessing elements of the list
print('First element: ${numbers[0]}'); // Output: First element: 1
print('Length of the list: ${numbers.length}'); // Output: Length of the list: 5
// Iterating over a list using for-in loop
for (var number in numbers) {
print('Number: $number');
}
// Adding elements to the list
numbers.add(6);
numbers.addAll([7, 8]);
print('Updated list: $numbers'); // Output: Updated list: [1, 2, 3, 4, 5, 6, 7, 8]
// Removing elements from the list
numbers.remove(3);
print('List after removal: $numbers'); // Output: List after removal: [1, 2, 4, 5, 6, 7, 8]
// Checking if a list contains an element
bool containsSeven = numbers.contains(7);
print('Does the list contain 7? $containsSeven'); // Output: Does the list contain 7? true
}
2. Sets
Sets in Dart are unordered collections of unique elements. Sets do not allow duplicate elements.
Example:
void main() {
// Creating a set of strings
Set<String> fruits = {'apple', 'banana', 'cherry'};
// Adding elements to the set
fruits.add('orange');
print('Updated set: $fruits'); // Output: Updated set: {apple, banana, cherry, orange}
// Adding duplicate element (ignored in set)
fruits.add('banana');
print('Set after adding duplicate: $fruits'); // Output: Set after adding duplicate: {apple, banana, cherry, orange}
// Removing an element from the set
fruits.remove('banana');
print('Set after removal: $fruits'); // Output: Set after removal: {apple, cherry, orange}
// Checking if a set contains an element
bool containsApple = fruits.contains('apple');
print('Does the set contain apple? $containsApple'); // Output: Does the set contain apple? true
}
3. Maps
Maps in Dart are collections of key-value pairs, where each key is unique. Maps are useful for associating keys with values.
Example:
void main() {
// Creating a map of student names and their ages
Map<String, int> studentAges = {
'Alice': 25,
'Bob': 30,
'Carol': 28,
};
// Accessing values from the map using keys
print('Age of Alice: ${studentAges['Alice']}'); // Output: Age of Alice: 25
// Adding a new entry to the map
studentAges['David'] = 22;
print('Updated map: $studentAges'); // Output: Updated map: {Alice: 25, Bob: 30, Carol: 28, David: 22}
// Removing an entry from the map
studentAges.remove('Bob');
print('Map after removal: $studentAges'); // Output: Map after removal: {Alice: 25, Carol: 28, David: 22}
// Checking if a map contains a key
bool containsCarol = studentAges.containsKey('Carol');
print('Does the map contain Carol? $containsCarol'); // Output: Does the map contain Carol? true
}
Summary
- Lists are ordered collections that allow duplicate elements and can grow or shrink dynamically.
- Sets are unordered collections of unique elements, useful when uniqueness is required.
- Maps are collections of key-value pairs where keys are unique, allowing efficient lookup and association of values with keys.
