Dart 是一种由 Google 开发的编程语言,主要用于构建 iOS 和 Android 应用。它具有简洁、高效的特点,并且支持多种数据结构。本文将详细介绍 Dart 中常见的数据结构,并通过实际案例展示如何使用它们。
1. 数组(Array)
数组是一种有序集合,它包含一系列相同类型的元素。在 Dart 中,数组可以通过以下方式声明:
var numbers = [1, 2, 3, 4, 5];
1.1 数组操作
- 添加元素:
numbers.add(6); // [1, 2, 3, 4, 5, 6]
- 删除元素:
numbers.removeLast(); // [1, 2, 3, 4, 5]
- 遍历数组:
for (var element in numbers) {
print(element);
}
2. 列表(List)
列表是 Dart 中的一种可变数组,它可以存储任意类型的元素。与数组类似,列表的声明方式如下:
var numbers = [1, 2, 3, 4, 5];
2.1 列表操作
- 添加元素:
numbers.add(6); // [1, 2, 3, 4, 5, 6]
- 删除元素:
numbers.removeLast(); // [1, 2, 3, 4, 5]
- 遍历列表:
for (var element in numbers) {
print(element);
}
3. 集合(Set)
集合是一种无序的、不包含重复元素的集合。在 Dart 中,集合的声明方式如下:
var numbers = {1, 2, 3, 4, 5};
3.1 集合操作
- 添加元素:
numbers.add(6); // {1, 2, 3, 4, 5, 6}
- 删除元素:
numbers.remove(3); // {1, 2, 4, 5, 6}
- 遍历集合:
for (var element in numbers) {
print(element);
}
4. 映射(Map)
映射是一种键值对的数据结构,其中键和值可以是任意类型。在 Dart 中,映射的声明方式如下:
var user = {
'name': '张三',
'age': 20,
'gender': '男'
};
4.1 映射操作
- 获取值:
print(user['name']); // 张三
- 添加键值对:
user['city'] = '北京'; // {'name': '张三', 'age': 20, 'gender': '男', 'city': '北京'}
- 删除键值对:
user.remove('name'); // {'age': 20, 'gender': '男', 'city': '北京'}
- 遍历映射:
user.forEach((key, value) {
print('$key: $value');
});
5. 实用案例分享
5.1 使用数组实现冒泡排序
void bubbleSort(List<int> list) {
for (int i = 0; i < list.length - 1; i++) {
for (int j = 0; j < list.length - 1 - i; j++) {
if (list[j] > list[j + 1]) {
var temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
}
var numbers = [5, 3, 8, 4, 1];
bubbleSort(numbers);
print(numbers); // [1, 3, 4, 5, 8]
5.2 使用集合实现快速排序
void quickSort(List<int> list, int start, int end) {
if (start >= end) {
return;
}
var pivot = list[end];
int i = start;
for (int j = start; j < end; j++) {
if (list[j] < pivot) {
var temp = list[j];
list[j] = list[i];
list[i] = temp;
i++;
}
}
list[end] = list[i];
list[i] = pivot;
quickSort(list, start, i - 1);
quickSort(list, i + 1, end);
}
var numbers = [5, 3, 8, 4, 1];
quickSort(numbers, 0, numbers.length - 1);
print(numbers); // [1, 3, 4, 5, 8]
通过以上案例,我们可以看到 Dart 中数据结构的强大功能。在实际开发中,合理运用这些数据结构可以让我们更高效地处理数据。
