📅  最后修改于: 2023-12-03 15:00:20.314000             🧑  作者: Mango
哈希 (Hash) 是一种常用的数据结构,可以用来快速地查找、插入和删除键值对。在 Dart 中创建哈希非常简单,有几种不同的方法可以实现。
Dart 的 Map 类实现了哈希表,可以轻松地创建和使用哈希表。例如,以下代码创建了一个包含两个键值对的哈希表:
Map<String, int> ages = {
'Alice': 30,
'Bob': 25,
};
这里创建了一个从 String 到 int 的映射,每个键(名字)都对应一个值(年龄)。要访问哈希表中的值,只需使用方括号语法:
print(ages['Alice']); // 输出 30
要添加新的键值对,可以使用方括号语法:
ages['Charlie'] = 20;
要从哈希表中删除一个键值对,可以使用 remove 方法:
ages.remove('Bob');
更多的操作可以查看 Dart 官方文档:Map 类
除了 Map 类之外,Dart 还提供了一个 HashMap 类来创建哈希表。HashMap 类提供了比 Map 类更多的灵活性和性能。
以下代码创建了一个 HashMap 并向其中添加三个键值对:
import 'dart:collection';
void main() {
HashMap<String, int> ages = new HashMap<String, int>();
ages['Alice'] = 30;
ages['Bob'] = 25;
ages['Charlie'] = 20;
}
要访问哈希表中的值,同样可以使用方括号语法:
print(ages['Alice']); // 输出 30
要从哈希表中删除一个键值对,同样可以使用 remove 方法:
ages.remove('Bob');
更多的操作可以查看 Dart 官方文档:HashMap 类
如果你需要使用哈希表来存储不可变的数据(例如在 Flutter 中),则可以使用 built_collection 库提供的 ImmutableMap 类。
以下代码创建了一个包含两个键值对的哈希表:
import 'package:built_collection/built_collection.dart';
void main() {
final names = ImmutableMap<String, String>({
'Alice': 'Smith',
'Bob': 'Jones',
});
}
要访问哈希表中的值,同样可以使用方括号语法:
print(names['Alice']); // 输出 Smith
要从哈希表中删除一个键值对,同样可以使用 remove 方法(不过这会返回一个新的哈希表,原始的哈希表不会受到影响):
final newNames = names.remove('Bob');
更多的操作可以查看 built_collection 库的文档:ImmutableMap 类
Dart 提供了几种方法来创建哈希表,包括 Map 类、HashMap 类和 built_collection 库的 ImmutableMap 类。这些方法都有自己的优缺点,你可以根据你的需求来选择适合你的方法。无论你选择哪种方法,都可以用来创建和操作哈希表。