+ -

C#集合类型初探(2) (Stack、Queue、SortedList、Hashtable、BitArray类)

时间:2011-05-25

来源:乌冻

在手机上看
手机扫描阅读

C#集合类型初探(2) 

  2.2 Stack类--栈类—继承ICollection接口

   Stack类实现的是数据结构中“栈”类型的容器。该类没有Capacity属性,但有Count属性,表示容器中元素的个数。  

  跟“栈”类型特点相应的方法成员有如下三个:

  A、Push方法:将对象插入Stack的顶部

  B、Pop方法:移除并返回位于Stack顶部的对象

  C、Peek方法:返回位于Stack顶部的对象但不将其移除

  根据“栈”的特点,位于Stack的顶部的对象,是最后一次用Push方法放入Stack的对象。

 

  2.3 Queue类--队列类--继承ICollection接口

  Queue类与Stack类相似,其实现的是数据结构中“队列”类型的容器。

  跟“队列”类型特点相应的方法成员有如下三个:

  A、Enqueue方法:将对象插入Queue的末尾

  B、Dequeue方法:移除并返回位于Queue开头的对象

  C、Peek方法:返回位于Queue开头的对象但不将其移除

  根据“队列”的特点,位于Queue末尾的对象,是最后一次用Enqueue方法放入的对象;位于Queue开头的对象,是最先用Push方法放入Queue的对象。

 

注意:Stack和Queue类中存放的都是object类型,在将对象放入时,程序会自动转换。但取出时,需根据需要的类型强制转换。

 

  2.4 SortedList类--键/值数组集合类--继承IDictionary接口

  --> SortedList 对象表示键/值对的集合,这些键值对按键排序并可按照键(key)和索引访问。

  --> SortedList中的元素是自动按照key进行排序的,排序的方法可按照特定的比较方法(如实现了(IComparer接口的类)实现,也可按照键本身提供的比较方法实现。

  --> SortedList还具有ArrayList的特性,带有索引。索引号按照排序的顺序进行分配,向SortedList中添加或删除元素时,会自动按照key进行排序,并调整分配索引。

  --> SortedList具有与ArrayList类似的方法,还有一些特有的方法,见下表:

SortedList的主要方法成员

名称

功能说明

Add()

将带有指定键和值的元素添加到SortedList中

Remove()

从SortedList中移除带有指定键的元素

sortedlist.GetKey()

根据索引号取得键

sortedlist.GetByIndex()

根据索引号取得值

IndexOfValue()

根据值取得索引号

IndexOfKey()

根据键取得索引号

  

  2.5 Hashtable类--哈希表(散列表)--继承IDictionary接口

  --> Hashtable类同样是表示表示键/值对的集合。

  --> Hashtable与其他集合类最主要的不同的是:产生索引的机制不同。

  当向一个Hashtable中放入一个元素时,会根据元素的键对象提供的哈希函数(GetHashCode())来生成一个哈希码(整型数),这个哈希码就作为该元素的索引。

  注:关于哈希函数的详细特性,请参阅相关资料

  --> Hashtable类上述机制,使其具有存储和检索时速度更快的特点。在一般的key/value型集合中,通过key进行检索时,需对所有key逐个进行比对。而在Hashtable中,则通过key算出哈希码,通过哈希码就可以直接取得对应的元素,大大提高了检索速度。

  --> Hashtable类的排序可以认为是不规则的,想要得到特定的顺序,需程序员进行特定的处理。

  2.6 BitArray类--比特数组--继承ICollection接口

  --> BitArray类:管理位值的压缩数组,该数组中,存放的值只能是比特,该值表示为布尔值,其中 true 表示位是打开的 (1),false 表示位是关闭的 (0)。

  --> 当用非比特类型的元素初始化一个BitArray对象时,在BitArray中存放的数据,将是该非比特类型元素在内存中的二进制编码。同时占用与该二进制编码长度相同的BitArray数组空间。比如一个Byte类型的2,放到一个BitArray数组中时,将使该数组的长度为8,每个元素存放的值依次是:{false, true, false, false, false, false, false, false}

 

热门下载

更多