2016-03-21集合泛型集合、队列和栈

集合

ArrayList

ArrayList 是一个可以动态维护长度的集合
其存储结构可表示为:
索引(下标) 值
0 obj1
1 obj2
2 obj3
…… ……

使用

  • 引入System.Collections命名空间
  • 实例化一个对象
    ArrayList 名称 = new ArrayList()
    示例:
                ArrayList students = new ArrayList();
                students.Add(s1);
                students.Add(s2);
                students.Add(s3);
                students.Add(s4);
                Console.WriteLine("\n这些是使用集合ArrayList存储输出的");
                foreach (Student s in students)
                {
                    s.SayHi();
                }//也可以放着循环中,通过students[i]来访问

Hashtable 哈希表

结构如下:

键1值1
键2值2
键3值3
            //Hashtable存储信息
            Hashtable teachers = new Hashtable();
            teachers.Add(t1.Name, t1);
            teachers.Add(t2.Name, t2);
            teachers.Add(t3.Name, t3);
            Console.WriteLine("\n这些是用哈希表存储输出的:");
            foreach (string str in teachers.Keys)
            {
                Teacher s = (Teacher)teachers[str];
                s.SayHi();
            }

List

  • 引入命名空间
    System.Collections.Generic
  • 使用示例:
            Console.WriteLine("\n这些是用泛型集合List输出的");
            List<Student> listStudent = new List<Student>();
            listStudent.Add(s1);
            listStudent.Add(s2);
            listStudent.Add(s3);
            listStudent.Add(s4);
            for (int i = 0; i < listStudent.Count; i++)
            {
                listStudent[i].SayHi();
            }
  • 说明
    List<类> listStudent = new List<类名>() 之后就只能存储这个类实例化出的对象,不能存储其他类型。

Dictionary<>

Dictionary

            Console.WriteLine("\n 这些是用Dictionary存储输出的:");
            Dictionary<int, Teacher> dicTeacher = new Dictionary<int, Teacher>();
            dicTeacher.Add(1, t1);
            dicTeacher.Add(2, t2);
            dicTeacher.Add(3, t3);
            foreach (Teacher t in dicTeacher.Values)
            {
                t.SayHi();
            }

队列和栈

  • 栈 Stack与Stack
    1.入栈Push
    2.出栈Pop

  • Queue与Queue
    1.入队Enqueue
    2.出队Dequeue

            //栈 Stack与Stack<T>
            Console.WriteLine("\n\n这是存储到栈再输出的结果");
            Stack<Student> s0 = new Stack<Student>();
            for (int i = 0; i < 4; i++)
            {
                s0.Push(listStudent[i]);//进栈
            }
            int scount = s0.Count;
            for (int i = 0; i < scount; i++)
            {
                s0.Pop().SayHi();//出栈
            }

            //队列 Queue与Queue<T>
            Console.WriteLine("");
            Queue<Teacher> queT = new Queue<Teacher>();
            queT.Enqueue(t1);
            queT.Enqueue(t2);
            queT.Enqueue(t3);//进入队列
            for (int i = 0; i < 3; i++)
            {
                queT.Dequeue().SayHi();
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值