如何在 TypeScript 中使用哈希表?
哈希表是一种存储不同数据键值对的数据结构。与其他编程语言一样,TypeScript也包含一个内置的映射数据结构。在JavaScript中,我们无法定义需要存储在映射中的键或值的类型。因此,我们需要创建一个泛型类型的映射。在TypeScript中,我们可以定义存储在映射中的键和值的类型。
语法
以下是 TypeScript 中创建映射的语法:
let hashMap = new Map<Key_Type, value_Type>();
参数
key_Type - 它是键的数据类型。用户可以使用字符串、数字、布尔值、对象、数组等。
value_Type - 它是值的数据类型。
TypeScript 中的哈希表方法
TypeScript 的映射类包含 5 到 6 个方法,我们可以通过以任何映射类对象作为引用来调用这些方法。用户可以在下面看到每个方法的解释。
get(key) - 映射类的 get() 方法用于获取映射中特定键存储的值。哈希表包含唯一的键,我们可以使用 get() 方法访问其值。
let hashMap = new Map<number, string>(); hashmap.get(1);
set(key, value) - 映射类的 set() 方法允许我们在映射中设置键值对。它将键作为第一个参数,将值作为第二个参数。此外,它采用唯一的键。如果用户传递现有键,则 set() 方法将替换现有键的值。
let hashMap = new Map<number, string>(); hashMap.set(1,"TutorialsPoint");
delete(key) - delete() 方法将键作为参数,并从映射对象中删除键及其映射的值。
let hashMap = new Map<number, string>(); hashMap.delete(1);
has(key) - has() 方法也以键作为参数,并检查哈希表是否包含特定键及其映射的值。
let hashMap = new Map<number, string>(); hashMap.has(1);
Size - 大小是映射类的一个变量,包含表示哈希表包含的键值对总数的数值。
let hashMap = new Map<number, string>(); let total = hashMap.size;
clear() - clear() 方法从 map() 对象中删除所有键值对,并将其大小设置为 0。
let hashMap = new Map<number, string>(); hashMap.clear();
示例
在下面的示例中,我们创建了一个映射并将其存储在“hashmap”中。之后,我们使用 set() 方法在 hashmap 中设置了 7 个不同的键值对。接下来,我们使用 get() 方法访问与特定键相关的值。
// Creating the new hashmap. Data type of the key // is number and data type of the value is string. let hashmap = new Map<Number, string>(); // Setting up number-string pairs into the hashmap. hashmap.set(1, "Hello"); hashmap.set(2, "World!"); // get the values from the hashmap let value1: string | undefined = hashmap.get(1); // If hashmap doesn't contains key-value pair, it returns the u //ndefined that's why we need to set type of value1 variable to undefined. console.log("Value for the key 1 is " + value1); let value2: string | undefined = hashmap.get(2); console.log("Value for the key 2 is " + value2);
编译后,它将生成以下 JavaScript 代码:
// Creating the new hashmap. Data type of the key // is number and data type of the value is string. var hashmap = new Map(); // Setting up number-string pairs into the hashmap. hashmap.set(1, "Hello"); hashmap.set(2, "World!"); // get the values from the hashmap var value1 = hashmap.get(1); // If hashmap doesn't contains key-value pair, it returns the u //ndefined that's why we need to set type of value1 variable to undefined. console.log("Value for the key 1 is " + value1); var value2 = hashmap.get(2); console.log("Value for the key 2 is " + value2);
输出
以上代码将产生以下输出:
Value for the key 1 is Hello Value for the key 2 is World!
示例
在下面的示例中,我们创建了一个映射并将其存储在“hashmap”中,并获取 hashmap 的大小。要获取大小,我们使用映射类的“size”变量。
let hashmap = new Map<Number, string>(); // Setting up number-string pairs into the hashmap. hashmap.set(1, "Hello"); hashmap.set(2, "World!"); // get the size of hashmap console.log(" "); console.log("The size of the hashmap is " + hashmap.size);
编译后,它将生成以下 JavaScript 代码:
var hashmap = new Map(); // Setting up number-string pairs into the hashmap. hashmap.set(1, "Hello"); hashmap.set(2, "World!"); // get the size of hashmap console.log(" "); console.log("The size of the hashmap is " + hashmap.size);
输出
以上代码将产生以下输出:
The size of the hashmap is 2
示例
之后,我们使用 has() 方法检查特定键是否存在于 hashmap 中。
let hashmap = new Map<Number, string>(); hashmap.set(1, "Welcome back"); hashmap.set(2, "to Tutorials Point"); console.log("hashmap contains the key 1? " + hashmap.has(1)); // returns true as it contains key 1. console.log("hashmap contains the key 3? " + hashmap.has(3)); // returns false as the key 3 does not exist.
编译后,它将生成以下 JavaScript 代码:
var hashmap = new Map(); hashmap.set(1, "Welcome back"); hashmap.set(2, "to Tutorials Point"); console.log("hashmap contains the key 1? " + hashmap.has(1)); // returns true as it contains key 1. console.log("hashmap contains the key 3? " + hashmap.has(3)); // returns false as the key 3 does not exist.
输出
以上代码将产生以下输出:
hashmap contains the key 1? true hashmap contains the key 3? false
示例
在此示例中,我们从 hashmap 中删除了两个键值对。我们还使用 clear() 方法删除所有映射记录。
// Creating the new hashmap. let hashmap = new Map<Number, string>(); // Setting up number-string pairs into the hashmap. hashmap.set(1, "Welcome"); hashmap.set(2, "To Tutorials Point"); // delete the key 2 hashmap.delete(2); console.log("Hashmap contains the key 2 ? " + hashmap.has(2)); // returns false as we deleted the key 2. // Clear the hashmap console.log(" "); hashmap.clear(); console.log("The size of the hashmap after clearing is :"); console.log(hashmap.size); // It returns 0 as we cleared the whole hashmap.
编译后,它将生成以下 JavaScript 代码:
// Creating the new hashmap. var hashmap = new Map(); // Setting up number-string pairs into the hashmap. hashmap.set(1, "Welcome"); hashmap.set(2, "To Tutorials Point"); // delete the key 2 hashmap["delete"](2); console.log("Hashmap contains the key 2 ? " + hashmap.has(2)); // returns false as we deleted the key 2. // Clear the hashmap console.log(" "); hashmap.clear(); console.log("The size of the hashmap after clearing is :"); console.log(hashmap.size); // It returns 0 as we cleared the whole hashmap.
输出
以上代码将产生以下输出:
Hashmap contains the key 2 ? false The size of the hashmap after clearing is : 0
在本教程中,用户学习了哈希表的用法。通过以上示例,用户学习了如何在 TypeScript 中使用哈希表的方法。