Dart 语言 集合展开与集合操作模式实践

Dart阿木 发布于 2025-06-18 8 次阅读


Dart 语言集合操作模式实践

在 Dart 语言中,集合(Collection)是一种用于存储和操作一组对象的容器。Dart 提供了丰富的集合操作方法,使得开发者可以轻松地对集合进行增删改查等操作。本文将围绕 Dart 语言集合展开,探讨集合操作模式,并通过实际代码示例进行实践。

Dart 集合概述

Dart 语言中的集合主要包括以下几种类型:

- List:有序集合,可以存储任意类型的对象。

- Set:无序集合,存储唯一的元素。

- Map:键值对集合,键和值可以是任意类型。

以下是对这些集合类型的简要介绍:

List

List 是 Dart 中最常用的集合类型之一,它允许存储任意类型的对象,并且可以按索引访问元素。

dart

List<int> numbers = [1, 2, 3, 4, 5];


print(numbers[0]); // 输出:1


Set

Set 是一个无序集合,它只存储唯一的元素。Set 中的元素可以是任何类型,包括数字、字符串等。

dart

Set<String> colors = {'red', 'green', 'blue'};


print(colors.contains('red')); // 输出:true


Map

Map 是一个键值对集合,键和值可以是任意类型。Map 中的元素是无序的,但键是唯一的。

dart

Map<String, int> scores = {'Alice': 90, 'Bob': 85};


print(scores['Alice']); // 输出:90


集合操作模式

在 Dart 中,集合操作模式主要包括以下几种:

1. 增加元素

向集合中添加元素可以使用 `add` 方法。

dart

List<String> fruits = ['apple', 'banana'];


fruits.add('orange');


print(fruits); // 输出:['apple', 'banana', 'orange']


2. 删除元素

从集合中删除元素可以使用 `remove` 方法。

dart

Set<String> colors = {'red', 'green', 'blue'};


colors.remove('green');


print(colors); // 输出:{'red', 'blue'}


3. 查找元素

可以使用 `contains` 方法检查集合中是否包含某个元素。

dart

List<String> numbers = [1, 2, 3, 4, 5];


print(numbers.contains(3)); // 输出:true


4. 遍历集合

可以使用 `forEach` 方法遍历集合中的每个元素。

dart

List<String> names = ['Alice', 'Bob', 'Charlie'];


names.forEach((name) {


print(name);


});


5. 排序集合

可以使用 `sort` 方法对集合进行排序。

dart

List<int> numbers = [5, 2, 9, 1, 5];


numbers.sort();


print(numbers); // 输出:[1, 2, 5, 5, 9]


6. 合并集合

可以使用 `addAll` 方法将一个集合的所有元素添加到另一个集合中。

dart

List<String> list1 = ['apple', 'banana'];


List<String> list2 = ['orange', 'grape'];


list1.addAll(list2);


print(list1); // 输出:['apple', 'banana', 'orange', 'grape']


7. 集合转换

可以使用 `map` 方法将集合中的每个元素转换为新元素。

dart

List<int> numbers = [1, 2, 3, 4, 5];


List<int> squares = numbers.map((number) => number number).toList();


print(squares); // 输出:[1, 4, 9, 16, 25]


实践案例

以下是一个使用 Dart 集合操作模式的实际案例,我们将创建一个简单的学生管理系统。

dart

class Student {


final String name;


final int age;


final double score;

Student(this.name, this.age, this.score);

@override


String toString() => 'Student(name: $name, age: $age, score: $score)';


}

void main() {


// 创建学生列表


List<Student> students = [


Student('Alice', 20, 90.5),


Student('Bob', 22, 85.0),


Student('Charlie', 19, 92.0),


];

// 添加新学生


students.add(Student('David', 21, 88.0));

// 删除学生


students.removeWhere((student) => student.name == 'Bob');

// 查找学生


Student? foundStudent = students.firstWhere((student) => student.name == 'Alice', orElse: () => null);


print(foundStudent);

// 遍历学生列表


students.forEach((student) {


print(student);


});

// 排序学生列表


students.sort((a, b) => a.score.compareTo(b.score));

// 合并学生列表


List<Student> newStudents = [


Student('Eve', 20, 91.0),


Student('Frank', 23, 89.0),


];


students.addAll(newStudents);

// 集合转换


List<String> studentNames = students.map((student) => student.name).toList();


print(studentNames);


}


在这个案例中,我们定义了一个 `Student` 类,并创建了一个学生列表。我们使用集合操作方法添加、删除、查找、遍历、排序、合并和转换学生信息。

总结

本文介绍了 Dart 语言中的集合操作模式,并通过实际代码示例进行了实践。通过掌握这些集合操作方法,开发者可以更高效地处理集合数据,提高代码的可读性和可维护性。在实际开发中,合理运用集合操作模式将有助于提升开发效率。