如何在 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 中使用哈希表的方法。

更新于:2023-10-07

39K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告