目录
与其他编程语言不同,Dart不支持数组。Dart集合可用于复制数组结构等数据结构。dart:core库和其他类在Dart脚本中启用Collection支持。
List
List只是一组有序的对象。该 dart:core 库提供的列表类,使创建和列表的操作。
Dart中的列表可归类为:
- 固定长度列表 - 列表的长度在运行时不能更改。
- 可增长列表 - 列表的长度可以在运行时更改。
示例
List logTypes = new List();
logTypes.add("WARNING");
logTypes.add("ERROR");
logTypes.add("INFO");
// iterating across list
for(String type in logTypes){
print("logTypes: ${(type)}");
}
// printing size of the list
print("logTypes.length: ${(logTypes.length)}");
logTypes.remove("WARNING");
print("size after removing.");
print("logTypes.length: ${(logTypes.length)}");
上述代码的输出如下
logTypes: WARNING
logTypes: ERROR
logTypes: INFO
logTypes.length: 3
size after removing.
logTypes.length: 2
Set
Set表示对象的集合,其中每个对象只能出现一次。dart:core库提供了Set类来实现相同的功能。
语法
Identifier = new Set()
或者
Identifier = new Set.from(Iterable)
其中, Iterable 表示要添加到Set的值列表。
示例
Set numberSet = new Set();
numberSet.add(100);
numberSet.add(20);
numberSet.add(5);
numberSet.add(60);
numberSet.add(70);
print("numberSet: Default implementation :${(numberSet.runtimeType)}");
// all elements are retrieved in the order in which they are inserted
for(var no in numberSet) {
print("numberSet - ${(no)}");
}
它应该产生以下输出
numberSet: Default implementation :_CompactLinkedHashSet<dynamic>
numberSet - 100
numberSet - 20
numberSet - 5
numberSet - 60
numberSet - 70
Set.from()
Set setFrom = new Set.from([12