Dart语言的集合
程序就是数据和函数的集合,也有称为数据结构和算法的集合。无论那种分法,如何存储数据、如何处理数据和如何应用数据成为计算机必须要解决的三个问题。
数学被称为万业之母(哲学是数学的母亲,嘿嘿),计算机作为食物链顶端的学科,大部分的理论都是架构在数学之上的。集合(collections)就是计算机引入数学的重要理论之一。
本文将介绍下面几种collection
- Set
- Queue
- Map
Set 是特殊类型的collection
Set 特点是内容是不能有重复,下面代码demo
main(){
Set aset = new Set();
aset.add('a');
aset.add('b');
aset.add('a');
print(aset);
}
运行效果:
{a, b}
Queue 先进先出的collection
Queue 也是一种特殊的collection,Queue采用先进先出策略。下面demo代码:
import 'dart:collection';
main() {
Queue aqueue = new Queue();
aqueue.addLast('a');
aqueue.addLast('b');
aqueue.addLast('c');
print(aqueue);
//输出队列
while (aqueue.isNotEmpty) {
var item=aqueue.first;
print('出队:$item');
print('剩余:$aqueue');
print('---------------');
aqueue.removeFirst();
}
}
输出结果:
{a, b, c}
出队:a
剩余:{a, b, c}
---------------
出队:b
剩余:{b, c}
---------------
出队:c
剩余:{c}
---------------
Map
Map 应该是最常用的collection之一了。下面的demo:
main() {
var colors = new Map();
colors['blue'] = false;
colors['red'] = true;
print(colors);
//遍历key
for (var key in colors.keys) print(key);
//遍历value
for (var value in colors.values) print(value);
}
运行结果:
{blue: false, red: true}
blue
red
false
true
List
Dart 语言没有array类型,我们可以用List类型。下面demo:
main() {
// Specifying the length creates a fixed-length list.
var onelist = new List();
onelist.add('a');
onelist.add('b');
onelist.add('a');
onelist.add('d');
print(onelist);
for (var item in onelist) {
print(item);
}
}
运行效果:
[a, b, a, d]
a
b
a
d