Dart 集合Set Dart 列表list Dart Map 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 列表list Dart Map