集合

哈希表

预计阅读时间2 分钟 7 views

前言

哈希表是一个非泛型集合,用于存储键值对,这些键值对是基于每个键的哈希码排列的。哈希表类实现了 ICollection 接口。

作用

哈希表用于存储和管理键值对数据,通过哈希算法快速查找数据。它适用于需要根据键快速检索值的场景。

使用场景

哈希表适合以下使用场景:

  1. 用户数据存储:例如存储用户信息,通过用户名快速检索用户信息。
  2. 配置管理:存储和管理应用程序配置项。
  3. 频繁查找操作:如缓存数据,需要快速检索和存储。

示例

  1. 创建哈希表
using System;
using System.Collections;

class Program
{
    public static void Main()
    {
        // 创建一个哈希表
        Hashtable myTable = new Hashtable();

        // 向哈希表中添加项
        myTable.Add("Name", "李雷");
        myTable.Add("Age", 30);
        myTable.Add("City", "北京");

        // 打印键为 "Age" 的值
        Console.WriteLine(myTable["Age"]);
    }
}

输出

30

在这个例子中,我们创建了一个哈希表并添加了几个键值对。然后,我们根据键访问并打印了一个值。

  1. 添加元素
using System;
using System.Collections;

class Program
{
    public static void Main()
    {
        // 创建一个哈希表
        Hashtable myTable = new Hashtable();

        // 向 Hashtable 中添加项
        myTable.Add("Course", "数学");
        myTable.Add("Code", 101);
    }
}

在这个例子中,我们创建了一个名为 myTable 的哈希表,并通过 Add() 方法添加了两个键值对。

  1. 访问哈希表元素
using System;
using System.Collections;

class Program
{
    public static void Main()
    {
        // 创建一个哈希表并添加元素
        Hashtable myTable = new Hashtable();

        // 向 Hashtable 中添加项
        myTable.Add("Department", "财务部");
        myTable.Add("EmployeeID", 12345);

        // 访问键为 "Department" 的值
        Console.WriteLine(myTable["Department"]);
        // 访问键为 "EmployeeID" 的值
        Console.WriteLine(myTable["EmployeeID"]);
    }
}

输出

财务部
12345

在这个例子中,我们通过键访问哈希表中的值。

  1. 遍历哈希表
using System;
using System.Collections;

class Program
{
    public static void Main()
    {
        // 创建一个哈希表并添加元素
        Hashtable myTable = new Hashtable();

        // 向哈希表中添加项
        myTable.Add("Product", "手机");
        myTable.Add("Price", 3999);
        myTable.Add("Stock", 50);

        // 打印哈希表的键
        foreach (var key in myTable.Keys)
        {
            Console.WriteLine("Key = {0}", key);
        }

        // 打印哈希表的值
        foreach (var value in myTable.Values)
        {
            Console.WriteLine("Value = {0}", value);
        }
    }
}

输出

Key = Product
Key = Price
Key = Stock
Value = 手机
Value = 3999
Value = 50

在这个例子中,我们使用 foreach 循环遍历哈希表的键和值。

  1. 修改哈希表元素
using System;
using System.Collections;

class Program
{
    public static void Main()
    {
        // 创建一个哈希表并添加元素
        Hashtable myTable = new Hashtable();

        // 向哈希表中添加项
        myTable.Add("Location", "上海");
        myTable.Add("Population", 24256800);

        // 打印原始值
        Console.WriteLine("修改前的 Location: " + myTable["Location"]);

        // 修改 "Location" 键的值为 "广州"
        myTable["Location"] = "广州";

        // 打印更新后的值
        Console.WriteLine("修改后的 Location: " + myTable["Location"]);
    }
}

输出

修改前的 Location: 上海
修改后的 Location: 广州

在这个例子中,我们修改了哈希表中 “Location” 键的值。

  1. 删除哈希表元素
using System;
using System.Collections;

class Program
{
    public static void Main()
    {
        // 创建一个哈希表并添加元素
        Hashtable myTable = new Hashtable();

        // 向哈希表中添加项
        myTable.Add("Brand", "宝马");
        myTable.Add("Model", "X5");
        myTable.Add("Year", 2024);

        Console.WriteLine("原始哈希表:");

        foreach (DictionaryEntry item in myTable)
        {
            Console.WriteLine("{0} : {1} ", item.Key, item.Value);
        }

        // 删除键为 "Model" 的值
        myTable.Remove("Model");

        Console.WriteLine("\n修改后的哈希表:");

        // 遍历修改后的哈希表
        foreach (DictionaryEntry item in myTable)
        {
            Console.WriteLine("{0} : {1} ", item.Key, item.Value);
        }
    }
}

输出

原始哈希表:
Brand : 宝马
Model : X5
Year : 2024

修改后的哈希表:
Brand : 宝马
Year : 2024

在这个例子中,我们通过 Remove("Model") 删除了键为 “Model” 的元素。

Leave a Comment

分享此文档

哈希表

或复制链接

内容