//Stack 先进后出 没有索引
Stack st = new Stack();
st.Push(12);
st.Push(11);
st.Push(22);
st.Push(34);
st.Push(56);//从栈顶部插入 56应该在栈的最上部
Console.WriteLine(st.Peek());//st.Peek(); 返回栈的顶部数据 但是不移除 56
Console.WriteLine(st.Pop());//st.Pop(); 移除并返回栈的顶部数据值 56
object[] arr1 = (object[])st.ToArray();//可以转换为数组 值从顶部向下部取
foreach (int i in arr1)
{
Console.Write(i + " ");//遍历 为 34 22 11 12
}
Console.ReadLine();
//Queue 先进先出
Queue qu = new Queue();
qu.Enqueue(12);//添加数据 12应该位于队列开始处
qu.Enqueue(34);
qu.Enqueue(56);
qu.Enqueue(78);
Console.WriteLine(qu.Peek());//qu.Peek(); 返回开始处的对象 但不移除 12
Console.WriteLine(qu.Dequeue());//qu.Dequeue(); 返回开始处对象 但是会移除 12
Object[] arr2 = (object[])qu.ToArray(); //转换为数组 值从队列开始取
foreach (int i in arr2)
{
Console.Write(i + " ");//遍历结果为 34 56 78
}
Console.ReadLine();
//Hashtable 以键 值 成对读取数组,可以自己设置索引
Hashtable ht = new Hashtable();
ht.Add(1, "tiger");//任意类型的key键 任意类型的value值
ht.Add(2, "lion");
ht.Add(3, "monkey");