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.