10-23C#基础--特殊集合(stack、queue、hashtable)

特殊集合一:stack集合--堆集合

1、定义:堆集合是集合中一种特殊的类,在Stack中也有许多方法和属性,下面一一列举:

命名格式:Stack ss=new Stack();

2、如何添加数据:push(),推,将需要的数据依次输入,一个推一个,进入Stack集合里;

ss.Push("i");在添加时,括号中需要加双引号,无论是int型还是string型;

3、如何读取数据:

运用foreach循环:

  foreach(string s in ss)//foreach根据集合构造,依次获取数据

{

Console.Write(s);

}

4、在Stack集合里没有索引;

Console.WriteLine(ss[0]);写中括号是不行的,堆集合没有索引。

5、属性:统计元素个数

 Console.WriteLine(ss.Count);//count属性,获取元素个数  

 

      

6、弹出移除数据

  

7、弹出不移除数据

 string tanchu = ss.Peek().ToString();//只获取最后进去的那个数据值,不移除

8、清空集合

ss.Clear();

9、复制集合

ss.Clone();

只能一个一个弹出,没有索引;

特殊集合二、Queue--队列集合

1、定义:queue,排队,列队;

2、如何赋值:一个一个赋值

3、count属性,计算元素的个数

4、读取第一个元素,并从集合移除

5、读取第一个元素,不移除(仍存在集合中)

6、Contain(包含),判断是否包含某个元素,返回布尔值

 

特殊集合三、HashTable--哈希表集合

1、定义://哈希表集合,一个位置包含两个值,一个key,一个values;            

  Hashtable ht = new Hashtable();            

2、如何赋值:需要自己加索引,加键,在读哈希表时,键值和value值要分开读;//不像数组中带有索引          

ht.Add(0, "王超");           

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

ht.Add(2, "濛哥");            

ht.Add(3, "雷子");            

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

ht.Add(5, "祥祥");            

ht.Add(6, "孙琪");         

3、  如何取值:

foreach (int i in ht.Keys)           

  {                

Console.WriteLine(i);//keys代表键的一个集合,读出的是倒着读出来,先进后出           

  }           

  foreach (string s in ht.Values)           

  {                

Console.WriteLine(s);//values代表value的一个集合            

}                    

Console.ReadLine();

4、Contains (包含)判断是否包含某个键

 Console.WriteLine( ht.Contains(4));//判断是否包含某个键   

                    

5、count属性,统计个数

格式:int geshu = ht.Count;    

Console.WriteLine(geshu );       

       

 6、清空数据

ht.Clear();      

 7、移除数据

//remove移除,移除的是键的元素            

// ht.Remove(4);//按照括号内的key值,移除key值和value  

  

8、 没有索引,不能重复添加key;例:  ht.Add(4, "丽丽");//键值(相当于索引),不能重复添加key;     

 9、  枚举类型:如何将key值和value值一块输出             

IDictionaryEnumerator ide = ht.GetEnumerator();            

while (ide.MoveNext())//返回bool值           

  {               

  Console.WriteLine(ide.Key+" "+ide.Value);            

}            

Console.ReadLine();

结语:指针问题

Stack:出口即入口,倒着走,先进后出

Queue:先进先出,

Hashtable:先进后出,入口即出口,movenext:下移

下图比较直观的反映出“先进后出”:

 

原文地址:https://www.cnblogs.com/xiaoqingshe/p/4045440.html