• .Net数据结构:DictionaryBase DictionaryEntry Hashtable


    DictionaryBase 类是用来创建用户字典的抽象类。 而字典则是利用散列表 (或者有时为单独
    的链表)作为潜在的数据结构来把数据存储到键值对内的一种数据结构。键值对作 为
    DictionaryEntry 对 象 来 进 行 存 储 , 而 且 必 须 使 用 Key 方 法 和 Value 方 法 来 取 回
    DictionaryEntry 对象中的实际值。

           

        public class myDictionary : DictionaryBase
        {
            public myDictionary() { }
    
            public void Add(object key, object value)
            {
                base.InnerHashtable.Add(key, value);
            }
    
            public void Remove(object key)
            {
                base.InnerHashtable.Remove(key);
            }
    
            public object Get(object key)
            {
                return base.InnerHashtable[key];
            }
    
            public void Clear()
            {
                base.InnerHashtable.Clear();
            }
            public int Count()
            {
                return base.InnerHashtable.Count;
            }
            public void Insert(object key, object value)
            {
                if (base.InnerHashtable.Contains(key))
                {
                    base.InnerHashtable.Remove(key);
                }
                base.InnerHashtable.Add(key,value);
            }
    
            public DictionaryEntry[] Entrys()
            {
                DictionaryEntry[] de = new DictionaryEntry[base.InnerHashtable.Count-1];
                base.InnerHashtable.CopyTo(de, 0);
                return de;
            }
        }

    DictionaryBase 类是一种用作专有字典实现基础的抽象(MusInherit)类。

    存储在字典中的键值对实际上是作为 DictionaryEntry 对象来存储的。DictionaryEntry 结构
    提供了两个域,一个用于关键字而另一个用于值。在这个结构中所要关注的只是 Key 属性
    和 Value 属性这两个属性(或方法) 。当把键值对录入到字典内的时候,这些方法会返回存
    储的值。

    就内部而言,会把键值对存储在被称为 InnerHashTable 的散列表对象中。

    .NET 框架库提供了一种非常有用的处理散列表的类, 即 Hashtable 类.

    Hashtable 类是 Dictionary 对象的一种特殊类型,它存储了键值对,其中的数值都是在源于
    关键字的散列代码的基础上进行存储的。

        public class myHashTable
        {
            Hashtable ht = new Hashtable();
    
            public myHashTable(){ }
    
            public void Add(object key, object value)
            {
                ht.Add(key, value);
            }
    
            public void Remove(object key)
            {
                if(ht.ContainsKey(key))
                {
                    ht.Remove(key);
                }
                
            }
    
            public object Get(object key)
            {
                return ht[key];
            }
    
            public void Clear()
            {
                ht.Clear();
            }
            public int Count()
            {
                return ht.Count;
            }
            public void Insert(object key, object value)
            {
                if (ht.Contains(key))
                {
                    ht.Remove(key);
                }
                ht.Add(key, value);
            }
        }

    Hashtable 类有两个非常有用的方法用来从散列表中取回关键字和数值: 即 Keys 和 Values 。
    这些方法创建了一个 Enumerator 对象,它允许使用 For Each 循环或者其他一些技术来检
    查关键字和数值。

  • 相关阅读:
    状压dp学习笔记
    dbcc log(转)
    日志分析 操作(转)
    Sql server 2005系统表详细说明
    c#读取并分析sqlServer据库日志(转)
    [POJ]1915 Knight Moves
    [JOY]1143 飘飘乎居士的约会
    [POJ]1164 The Castle
    win7注册ocx时出现对DllRegisterServer的调用失败,错误代码为0x80040200解决方案
    注册DLL、OCX的方法
  • 原文地址:https://www.cnblogs.com/Francis-YZR/p/5050681.html
Copyright © 2020-2023  润新知