zoukankan      html  css  js  c++  java
  • .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 循环或者其他一些技术来检
    查关键字和数值。

  • 相关阅读:
    线性时间选择
    ios理解 Pro Mutlithreading and Memory Management for iOS and OS X with ARC, Grand Central Dispatch, and Blocks
    ef
    c# 采集 获取网页数据内容 一会超时的问题
    entity4.1
    逐渐约束
    entity4.1
    ObjectContext.Refresh
    使用内存表
    MVCdropdownlist
  • 原文地址:https://www.cnblogs.com/Francis-YZR/p/5050681.html
Copyright © 2011-2022 走看看