C#中泛型和集合-Stack,Queue&HashTable

1.Stack使用:

栈,遵循先进后出原则,相当于子弹匣,实例应用,压栈操作用 Push(object obj),对象为Object类,出栈操作用public virtual object Pop(),pop表示栈顶出栈,程序演示:

 Stack stack = new Stack();    
 stack.Push("1");
 stack.Push("2");
 stack.Push("3");
 Console.WriteLine("压栈数据:");
 foreach (var item in stack)
 {
     Console.Write(item+" ");    
 }
 stack.Pop();
 Console.WriteLine("出栈一次数据:");
 foreach (var item in stack)
 {
     Console.Write(item+" ");
 }

栈顶数据出栈删除,运行结果:

压栈数据:
3 2 1 
出栈一次数据:
2 1

2.队使用:

遵循先进先出原则,常用有 public virtual void Enqueue(object obj),public virtual object Dequeue()等,代码如下:

 Queue queue = new Queue();
 queue.Enqueue(1);
 queue.Enqueue(2);  
 queue.Enqueue(3);
 foreach (object item in queue) 
 {
     Console.WriteLine(item);
 
 }
 queue.Dequeue();
 foreach (object item in queue)
 {
     Console.WriteLine(item);

 }

执行结果:

1 2 3
2 3

.3.Hashtable使用:

对象相同,Hash值必须相同,Hash值相同,对象不一定相同

Program program = new Program();
Program program1 = new Program();
Program program2 = new Program();
Program program3 = program2;

Console.WriteLine( program.GetHashCode());           
Console.WriteLine( program1.GetHashCode());
Console.WriteLine( program2.GetHashCode());
Console.WriteLine(program3.GetHashCode());

打印结果:

46104728
12289376
43495525
43495525

HashTable创建函数:public virtual void Add(object key, object value),键值对方式出现,HashTable键值对是无序的,不按照对应顺序排列

Hashtable   hashtable = new Hashtable();
hashtable.Add(1,2);
hashtable.Add(2,3); 
hashtable.Add(3,4);         
hashtable.Add(4,5);
foreach (Object key in hashtable.Keys) {

    Console.WriteLine(key);

}

打印结果:

4
3
2
1

同样HashTable可以用字典方式打印出来:

 foreach (DictionaryEntry dic in hashtable)
 {
     Console.WriteLine($"{dic.Key},{dic.Value}");
 }

打印结果:

4,5
3,4
2,3
1,2

Hash表常用函数:count(),Remove(),containsKey()等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值