zoukankan      html  css  js  c++  java
  • C# 哈希表(Hashtable)用法笔记

    一、什么是Hashtable?

    Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对。它使用键来访问集合中的元素。

    当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目

    二、Hashtable 的属性

    1、Count 获取 Hashtable 中包含的键值对个数。

    2、IsFixedSize   获取一个值,表示 Hashtable 是否具有固定大小。

    3、IsReadOnly    获取一个值,表示 Hashtable 是否只读。

    4、Item  获取或设置与指定的键相关的值。

    5、Keys  获取一个 ICollection,包含 Hashtable 中的键。

    6、Values    获取一个 ICollection,包含 Hashtable 中的值。

    三、Hashtable 的方法

    在C#中使用需要引用

    using System.Collections;

    using System.Collections.Generic;

    这两个命名空间

    1、  public virtual void Add( object key, object value );

    用途: 向 Hashtable 添加一个带有指定的键和值的元素。

    2、public virtual void Clear();

    用途:从 Hashtable 中移除所有的元素。

    3、public virtual bool ContainsKey( object key );

    用途:判断 Hashtable 是否包含指定的键。

    4、public virtual bool ContainsValue( object value );

    用途:判断 Hashtable 是否包含指定的值。

    5、public virtual void Remove( object key );

    用途:从 Hashtable 中移除带有指定的键的元素。

    四、HashTable的应用场景

    1、某些数据会被高频率查询

    2、数据量很大

    3、查询字段包含字符串类型

    4、数据类型不唯一

    五、HashTable简单用法实例

    class Program

    {

    static void Main(string[] args)

    {

    // 创建一个Hashtable实例

    Hashtable ht=new Hashtable();

    // 添加keyvalue键值对

    ht.Add("A","1");

    ht.Add("B","2");

    ht.Add("C","3");

    ht.Add("D","4");

    // 遍历哈希表只能用foreach来遍历,因为Hashtable不能用索引访问

    //遍历key

    foreach(Object item in ht.Keys)

    {

    Console.WriteLine((string)item);

    }

    //遍历value

    foreach(Object item in ht.Value)

    {

    Console.WriteLine((string)item);

    }

    foreach (DictionaryEntry de in ht)

    {

    Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);

    }

    // 哈希表排序

    ArrayList akeys=new ArrayList(ht.Keys);

    akeys.Sort();

    foreach (string skey in akeys)

    {

    Console.WriteLine("{0, -15} {1, -15}", skey, ht[skey]);

    }

    // 判断哈希表是否包含特定键,其返回值为true或false

    if (ht.Contains("A"))

    Console.WriteLine(ht["A"]);

    // 给对应的键赋值

    ht["A"] ="你好";

    // 移除一个keyvalue键值对

    ht.Remove("C");

    // 遍历哈希表

    foreach (DictionaryEntry de in ht)

    {

    Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);

    }

    // 移除所有元素

    ht.Clear();

    // 此处将不会有任何输出

    Console.WriteLine(ht["A"]);

    Console.ReadKey();

    }

    }

    公众号:原文

  • 相关阅读:
    flask 源码专题(七):threading.local和高级
    flask 源码专题(六):session处理机制
    flask 源码专题(五):SqlAlchemy 中操作数据库时session和scoped_session的区别
    flask 源码专题(四):wtforms Form实例化流程以及csrf验证
    flask 源码专题(三):请求上下文和应用上下文入栈与出栈
    python 追踪函数调用
    flask 源码专题(一):app.run()的背后
    flask 源码专题(二):请求上下文与全文上下文
    边框间距 | border-spacing (Miscellaneous Level 2)
    边框样式属性 | border-top-style (Backgrounds & Borders)
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12352746.html
Copyright © 2011-2022 走看看