在Dart,默认情况下集合是异构的。但是,通过使用泛型,我们可以创建一个集合来保存同类值。泛型的使用使得在集合中使用单一的强制数据类型。这样的集合称为类型安全集合。通过使用泛型, Dart语言确保了类型安全。
句法:
Collection_name identifier= new Collection_name
我们可以使用List 、 Set 、 Map和Queue泛型在Dart实现类型安全。
通用清单
在Dart,一个 List 只是一组有序的对象。列表只是数组的实现。
例子:
Dart
main() {
List listEx = new List ();
listEx.add(341);
listEx.add(1);
listEx.add(23);
// iterating across list listEx
for (int element in listEx) {
print(element);
}
}
Dart
main() {
Set SetEx = new Set ();
SetEx.add(12);
SetEx.add(3);
SetEx.add(4);
// Already added once, hence wont be added
SetEx.add(3);
// iterating across Set SetEx
for (int element in SetEx) {
print(element);
}
}
Dart
main() {
// Creating a Map with Name and ids of students
Map mp={'Ankur':1,'Arnav':002,'Shivam':003};
print('Map :${mp}');
}
Dart
import 'dart:collection';
main() {
Queue q = new Queue();
// Inserting at end of the queue
q.addLast(1);
// Inserting at end of the queue
q.addLast(2);
// Inserting at start of the queue
q.addFirst(3);
// Inserting at end of the queue
q.addLast(4);
// Current Queue order is 3 1 2 4.
// Removing the first element(3) of the queue
q.removeFirst();
// Iterating over the queue
for(int element in q){
print(element);
}
}
输出:
341
1
23
通用集
在Dart,一个 Set 代表一个对象的集合,其中每个对象只能存在一次。
例子:
Dart
main() {
Set SetEx = new Set ();
SetEx.add(12);
SetEx.add(3);
SetEx.add(4);
// Already added once, hence wont be added
SetEx.add(3);
// iterating across Set SetEx
for (int element in SetEx) {
print(element);
}
}
输出:
12
3
4
通用地图
在Dart, Map 是键值对的动态集合。
例子:
Dart
main() {
// Creating a Map with Name and ids of students
Map mp={'Ankur':1,'Arnav':002,'Shivam':003};
print('Map :${mp}');
}
输出:
Map :{Ankur: 1, Arnav: 2, Shivam: 3}
通用队列
队列是在以 FIFO(先进先出)方式插入数据时使用的集合。在Dart,可以在两端操作队列,即在队列的开头和结尾。
例子:
Dart
import 'dart:collection';
main() {
Queue q = new Queue();
// Inserting at end of the queue
q.addLast(1);
// Inserting at end of the queue
q.addLast(2);
// Inserting at start of the queue
q.addFirst(3);
// Inserting at end of the queue
q.addLast(4);
// Current Queue order is 3 1 2 4.
// Removing the first element(3) of the queue
q.removeFirst();
// Iterating over the queue
for(int element in q){
print(element);
}
}
输出:
1
2
4