堆栈(Stack):
代表了一个后进先出的对象集合。当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。
Stack 类的方法和属性
下表列出了 Stack 类的一些常用的 属性:
属性 | 描述 |
Count | 获取 Stack 中包含的元素个数。 |
下表列出了 Stack 类的一些常用的 方法:
序号 | 方法名&描述 |
1 | public virtual void Clear(); 从 Stack 中移除所有的元素。 |
2 | public virtual bool Contains( object obj ); 判断某个元素是否在 Stack 中。 |
3 | public virtual object Peek(); 返回在 Stack 的顶部的对象,但不移除它。 |
4 | public virtual object Pop(); 移除并返回在 Stack 的顶部的对象。 |
5 | public virtual void Push( object obj ); 向 Stack 的顶部添加一个对象。 |
6 | public virtual object[] ToArray(); 复制 Stack 到一个新的数组中。 |
示例:
// 声明对象 Stack sta = new Stack(); // 推入对象 sta.Push("a"); sta.Push("b"); sta.Push("c"); sta.Push("d"); foreach (string item in sta) { Console.WriteLine(item); } Console.WriteLine(" "); // 取出顶部的元素且移除 string asdf = (string)sta.Pop(); foreach (string item in sta) { Console.WriteLine(item); } Console.WriteLine(" "); // 取出顶部元素,不移除 string ff = (string)sta.Peek(); foreach (string item in sta) { Console.WriteLine(item); } Console.WriteLine(" "); Console.ReadLine();
Queue是一个对象,存什么类型都好
System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除。
优点
1、能对集合进行顺序处理(先进先出)。
2、能接受null值,并且允许重复的元素。
Queue的构造器
构造器函数 | 注释 |
Queue () | 初始化 Queue 类的新实例,该实例为空,具有默认初始容量(32)并使用默认增长因子(2.0)。 |
Queue (ICollection) | 初始化 Queue 类的新实例,该实例包含从指定集合复制的元素,具有与所复制的元素数相同的初始容量并使用默认增长因子。 |
Queue (Int32) | 初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用默认增长因子。 |
Queue (Int32, Single) | 初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用指定的增长因子。 |
Queue的属性
属性名 | 注释 |
Count | 获取 Queue 中包含的元素数。 |
Queue的方法
方法名 | 注释 |
Void Clear() | 从 Queue 中移除所有对象。 |
Bool Contains(object obj) | 确定某元素是否在 Queue 中。 |
Object Clone() | 创建 Queue 的浅表副本。 |
Void CopyTo(Array array,int index) | 从指定数组索引开始将 Queue 元素复制到现有一维 Array 中。 |
Object Dequeue() | 移除并返回位于 Queue 开始处的对象。 |
Void Enqueue(object obj) | 将对象添加到 Queue 的结尾处。 |
Object Peek() | 返回位于 Queue 开始处的对象但不将其移除。 |
Object[]ToArray() | 将 Queue 元素复制到新数组。 |
Void TrimToSize() | 将容量设置为 Queue 中元素的实际数目。 |
示例:
Queue que = new Queue(); // 添加元素 que.Enqueue("111"); que.Enqueue("222"); que.Enqueue("333"); que.Enqueue("444"); foreach (string item in que) { Console.WriteLine(item); } Console.WriteLine(" "); // 删除元素(取出) string qw = (string)que.Dequeue(); Console.WriteLine(qw+" "); foreach (string item in que) { Console.WriteLine(item); } Console.WriteLine(" "); // 取出元素,但不删除 qw = (string)que.Peek(); foreach (string item in que) { Console.WriteLine(item); } Console.WriteLine(" "); 复制代码
SortedList类:
SortedList 类代表了一系列按照键来排序的键/值对,这些键值对可以通过键和索引来访问。
排序列表是数组和哈希表的组合。它包含一个可使用键或索引访问各项的列表。如果您使用索引访问各项,则它是一个动态数组(ArrayList),如果您使用键访问各项,则它是一个哈希表(存储键值)也就是说是两个数组,相互关联。集合中的各项总是按键值排序。
SortedList 类的方法和属性
下表列出了 SortedList 类的一些常用的 属性:
属性 | 描述 |
Capacity | 获取或设置 SortedList 的容量。 |
Count | 获取 SortedList 中的元素个数。 |
IsFixedSize | 获取一个值,表示 SortedList 是否具有固定大小。 |
IsReadOnly | 获取一个值,表示 SortedList 是否只读。 |
Item | 获取或设置与 SortedList 中指定的键相关的值。 |
Keys | 获取 SortedList 中的键。 |
Values | 获取 SortedList 中的值。 |
下表列出了 SortedList 类的一些常用的 方法:
序号 | 方法名&描述 |
1 | public virtual void Add( object key, object value ); 向 SortedList 添加一个带有指定的键和值的元素。 |
2 | public virtual void Clear(); 从 SortedList 中移除所有的元素。 |
3 | public virtual bool ContainsKey( object key ); 判断 SortedList 是否包含指定的键。 |
4 | public virtual bool ContainsValue( object value ); 判断 SortedList 是否包含指定的值。 |
5 | public virtual object GetByIndex( int index ); 获取 SortedList 的指定索引处的值。 |
6 | public virtual object GetKey( int index ); 获取 SortedList 的指定索引处的键。 |
7 | public virtual IList GetKeyList(); 获取 SortedList 中的键。 |
8 | public virtual IList GetValueList(); 获取 SortedList 中的值。 |
9 | public virtual int IndexOfKey( object key ); 返回 SortedList 中的指定键的索引,索引从零开始。 |
10 | public virtual int IndexOfValue( object value ); 返回 SortedList 中的指定值第一次出现的索引,索引从零开始。 |
11 | public virtual void Remove( object key ); 从 SortedList 中移除带有指定的键的元素。 |
12 | public virtual void RemoveAt( int index ); 移除 SortedList 的指定索引处的元素。 |
13 | public virtual void TrimToSize(); 设置容量为 SortedList 中元素的实际个数。 |
示例:
SortedList sort = new SortedList(); sort.Add("1等奖", "都是比较快"); sort.Add("3等奖", "删掉了"); sort.Add("2等奖", "线程VB方法"); for (int i = 0; i < sort.Count; i++) { // 获取键 Console.WriteLine(sort.GetKey(i)); // 获取元素值 Console.WriteLine(sort.GetByIndex(i)+" "); } // 获取键值数组 foreach (string item in sort.GetKeyList()) { Console.WriteLine(item); } // 获取元素值 foreach (string item in sort.GetValueList()) { Console.WriteLine(item); }