1. Create a List of Maps
A List of Maps is simply a list where each item is a Map
. Here is an example with multiple student objects.
void main() {
// List of Maps: Collection of Student Objects
List<Map<String, dynamic>> students = [
{"id": 1, "name": "John Doe", "age": 20, "grade": "A"},
{"id": 2, "name": "Jane Smith", "age": 22, "grade": "B"},
{"id": 3, "name": "Alice Brown", "age": 21, "grade": "C"},
];
// Print all students
print("List of Students:");
for (var student in students) {
print(student);
}
}
Output:
List of Students:
{id: 1, name: John Doe, age: 20, grade: A}
{id: 2, name: Jane Smith, age: 22, grade: B}
{id: 3, name: Alice Brown, age: 21, grade: C}
2. Add (Append) a New Map to the List
You can use the .add()
method to append a new Map
object to the list.
void main() {
List<Map<String, dynamic>> students = [
{"id": 1, "name": "John Doe", "age": 20, "grade": "A"},
{"id": 2, "name": "Jane Smith", "age": 22, "grade": "B"},
];
// Append a new student
students.add({"id": 3, "name": "Bob White", "age": 23, "grade": "A+"});
print("After Adding a New Student:");
for (var student in students) {
print(student);
}
}
Output:
After Adding a New Student:
{id: 1, name: John Doe, age: 20, grade: A}
{id: 2, name: Jane Smith, age: 22, grade: B}
{id: 3, name: Bob White, age: 23, grade: A+}
3. Remove a Specific Map by ID
To remove an object (student) from the list, use removeWhere()
to filter based on a condition.
void main() {
List<Map<String, dynamic>> students = [
{"id": 1, "name": "John Doe", "age": 20, "grade": "A"},
{"id": 2, "name": "Jane Smith", "age": 22, "grade": "B"},
{"id": 3, "name": "Alice Brown", "age": 21, "grade": "C"},
];
// Remove student with ID 2
students.removeWhere((student) => student["id"] == 2);
print("After Removing Student with ID 2:");
for (var student in students) {
print(student);
}
}
Output:
After Removing Student with ID 2:
{id: 1, name: John Doe, age: 20, grade: A}
{id: 3, name: Alice Brown, age: 21, grade: C}
4. Update a Map in the List
To update an item, search for the object by a condition and modify its properties.
void main() {
List<Map<String, dynamic>> students = [
{"id": 1, "name": "John Doe", "age": 20, "grade": "A"},
{"id": 2, "name": "Jane Smith", "age": 22, "grade": "B"},
];
// Update student with ID 1
for (var student in students) {
if (student["id"] == 1) {
student["name"] = "John Updated";
student["grade"] = "A+";
}
}
print("After Updating Student with ID 1:");
for (var student in students) {
print(student);
}
}
Output:
After Updating Student with ID 1:
{id: 1, name: John Updated, age: 20, grade: A+}
{id: 2, name: Jane Smith, age: 22, grade: B}
5. Find a Map by ID (Search Operation)
To search for an object in a list, use .firstWhere()
to filter by a condition.
void main() {
List<Map<String, dynamic>> students = [
{"id": 1, "name": "John Doe", "age": 20, "grade": "A"},
{"id": 2, "name": "Jane Smith", "age": 22, "grade": "B"},
{"id": 3, "name": "Alice Brown", "age": 21, "grade": "C"},
];
// Find student with ID 3
var student = students.firstWhere((student) => student["id"] == 3);
print("Found Student: $student");
}
Output:
Found Student: {id: 3, name: Alice Brown, age: 21, grade: C}
Full Example Combining All Operations
void main() {
List<Map<String, dynamic>> students = [
{"id": 1, "name": "John Doe", "age": 20, "grade": "A"},
{"id": 2, "name": "Jane Smith", "age": 22, "grade": "B"},
{"id": 3, "name": "Alice Brown", "age": 21, "grade": "C"},
];
print("Initial List of Students: $students");
// Add
students.add({"id": 4, "name": "Bob White", "age": 23, "grade": "A+"});
print("\nAfter Adding a New Student: $students");
// Update
for (var student in students) {
if (student["id"] == 2) {
student["name"] = "Jane Updated";
student["grade"] = "A-";
}
}
print("\nAfter Updating Student with ID 2: $students");
// Remove
students.removeWhere((student) => student["id"] == 3);
print("\nAfter Removing Student with ID 3: $students");
// Find
var foundStudent = students.firstWhere((student) => student["id"] == 1);
print("\nFound Student with ID 1: $foundStudent");
}
Output
Initial List of Students: [{id: 1, name: John Doe, age: 20, grade: A}, {id: 2, name: Jane Smith, age: 22, grade: B}, {id: 3, name: Alice Brown, age: 21, grade: C}]
After Adding a New Student: [{id: 1, name: John Doe, age: 20, grade: A}, {id: 2, name: Jane Smith, age: 22, grade: B}, {id: 3, name: Alice Brown, age: 21, grade: C}, {id: 4, name: Bob White, age: 23, grade: A+}]
After Updating Student with ID 2: [{id: 1, name: John Doe, age: 20, grade: A}, {id: 2, name: Jane Updated, age: 22, grade: A-}, {id: 3, name: Alice Brown, age: 21, grade: C}, {id: 4, name: Bob White, age: 23, grade: A+}]
After Removing Student with ID 3: [{id: 1, name: John Doe, age: 20, grade: A}, {id: 2, name: Jane Updated, age: 22, grade: A-}, {id: 4, name: Bob White, age: 23, grade: A+}]
Found Student with ID 1: {id: 1, name: John Doe, age: 20, grade: A}
Summary
Operation | Method | Example |
---|---|---|
Add (Append) |
|
|
Remove by Condition |
|
|
Update by Condition |
|
|
Find by Condition |
|
|