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()等。