Dart 集合Set
Set表示对象的集合,其中每个对象只能出现一次,dart:core库提供了Set类。
语法
Identifier = new Set()
或者
Identifier = new Set.from(Iterable)
其中, Iterable 表示要添加到Set的值列表。
范例
void main() {
Set numberSet = new Set();
numberSet.add(100);
numberSet.add(20);
numberSet.add(5);
numberSet.add(60);
numberSet.add(70);
print("Default implementation :${numberSet.runtimeType}");
// all elements are retrieved in the order in which they are inserted
for(var no in numberSet) {
print(no);
}
}
它应该产生以下 输出:
100 20 5 60 70
Set.from()
void main() {
Set numberSet = new Set.from([12,13,14]);
print("Default implementation :${numberSet.runtimeType}");
// all elements are retrieved in the order in which they are inserted
for(var no in numberSet) {
print(no);
}
}
它应该产生以下 输出:
12 13 14
高级Dart集合─dart: collection库
dart:集合库提供了支持Dart集合的各种实现的类。我们将在本节中讨论以下主题。
- HashMap
- HashSet
- LinkedList
- Queue
HashMap
HashMap是基于哈希表的Map实现。当您遍历HashMap的键或值时,您不能指望某个订单。
语法
Identifier= new HashMap()
范例
以下示例显示了如何实现HashMap。
import 'dart:collection';
main() {
var accounts = new HashMap();
accounts['dept']='HR';
accounts['name']='Tom';
accounts['email']='tom@xyz.com';
print('Map after adding entries :${accounts}');
}
它应该产生以下 输出:
Map after adding entries :{email: tom@xyz.com, dept: HR}
将多个值添加到HashMap
HashMap类从Map类继承 addAll() 函数。此功能可以一次添加多个值。
语法
HashMap.addAll(Iterable)
其中, Iterable 表示要插入的值列表。
范例
import 'dart:collection';
main() {
var accounts = new HashMap();
accounts.addAll({'dept':'HR','email':'tom@xyz.com'});
print('Map after adding entries :${accounts}');
}
它应该产生以下 输出:
Map after adding entries :{email: tom@xyz.com, dept: HR}
从HashMap中删除值
的 remove() 和 clear() 函数用于从HashMap中删除条目。的 remove() 函数传递一个表示要删除的条目的密钥。在 clear() 函数用于从地图中删除所有条目。
范例
import 'dart:collection';
main() {
var accounts = new HashMap();
accounts['dept'] = 'HR';
accounts['name'] = 'Tom';
accounts['email'] = 'tom@xyz.com';
print('Map after adding entries :${accounts}');
accounts.remove('dept');
print('Map after removing entry :${accounts}');
accounts.clear();
print('Map after clearing entries :${accounts}');
}
它应该产生以下 输出:
Map after adding entries :{email: tom@xyz.com, dept: HR, name: Tom}
Map after removing entry :{email: tom@xyz.com, name: Tom}
Map after clearing entries :{}
HashSet
HashSet是一种基于无序散列表的Set实现。
语法
Identifier = new HashSet()
该 add() 函数可用于填充HashSet实例。
范例
import 'dart:collection';
void main() {
Set numberSet = new HashSet();
numberSet.add(100);
numberSet.add(20);
numberSet.add(5);
numberSet.add(60);
numberSet.add(70);
print("Default implementation :${numberSet.runtimeType}");
for(var no in numberSet){
print(no);
}
}
它应该产生以下 输出:
60 20 100 5 70
将多个值添加到HashSet
所述 addAll() 函数允许添加多个值给HashSet的。
范例:
import 'dart:collection';
void main() {
Set numberSet = new HashSet();
numberSet.addAll([100,200,300]);
print("Default implementation :${numberSet.runtimeType}");
for(var no in numberSet){
print(no);
}
}
它应该产生以下 输出
Default implementation :_HashSet 200 300 100
从哈希集中删除值
的 remove() 函数删除传递给它的值。在 clear() 函数从HashSet中所有条目。
例
import 'dart:collection';
void main() {
Set numberSet = new HashSet();
numberSet.addAll([100,200,300]);
print("Printing hashet.. ${numberSet}");
numberSet.remove(100);
print("Printing hashet.. ${numberSet}");
numberSet.clear();
print("Printing hashet.. ${numberSet}");
}
它应该产生以下 输出
Printing hashet.. {200, 300, 100}
Printing hashet.. {200, 300}
Printing hashet.. {}
下一章:Dart Map
Map对象是一个简单的键/值对。地图中的键和值可以是任何类型。地图是动态集合。换句话说,Maps可以在运行时增长和缩小。dart:core库中的Map类提供了对它的支持。范例void main() { var detai ...
AI 中文社