- Dart 编程教程
- Dart 编程 - 首页
- Dart 编程 - 概述
- Dart 编程 - 环境
- Dart 编程 - 语法
- Dart 编程 - 数据类型
- Dart 编程 - 变量
- Dart 编程 - 运算符
- Dart 编程 - 循环
- Dart 编程 - 决策
- Dart 编程 - 数字
- Dart 编程 - 字符串
- Dart 编程 - 布尔值
- Dart 编程 - 列表
- Dart 编程 - 列表
- Dart 编程 - 映射
- Dart 编程 - 符号
- Dart 编程 - Rune
- Dart 编程 - 枚举
- Dart 编程 - 函数
- Dart 编程 - 接口
- Dart 编程 - 类
- Dart 编程 - 对象
- Dart 编程 - 集合
- Dart 编程 - 泛型
- Dart 编程 - 包
- Dart 编程 - 异常
- Dart 编程 - 调试
- Dart 编程 - 类型定义
- Dart 编程 - 库
- Dart 编程 - 异步
- Dart 编程 - 并发
- Dart 编程 - 单元测试
- Dart 编程 - HTML DOM
- Dart 编程实用资源
- Dart 编程 - 快速指南
- Dart 编程 - 资源
- Dart 编程 - 讨论
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:collection 库提供了能够实现各种 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, name: Tom}
向 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() 函数用于移除 Map 中的所有条目。
示例
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
从 HashSet 中移除值
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_programming_collection.htm
广告