集合2

十三、特殊集合

(一)定义

1、Stack集合

//先进后出。

Stack aa = new Stack();
aa.Push(1);//向stack集合中添加数据
aa.Push(2);
aa.Push(3);
aa.Push(4);
aa.Push(5);

//注意:Stack是没有索引的。Console.WriteLine(aa[0]);是错误的。

Console.WriteLine(aa.Peek());//仅用来查看最后一位,不踢出

Console.WriteLine(aa.Pop());//弹出,踢出最后一个进入集合的数据

int aaa = aa.Count;//统计个数

aa.Clear();//清空集合

foreach (object a in aa)
{
   Console.WriteLine(a);
}

Console.ReadLine();

2、Queue 队列集合
//先进的先出,后进的后出
//没有索引
Queue qq = new Queue();
qq.Enqueue(1);//给集合中添加元素
qq.Enqueue(2);
qq.Enqueue(3);
qq.Enqueue(4);
qq.Enqueue(5);

qq.Dequeue();//将排在最前面的剔除
int c =qq.Count;//统计个数

qq.Peek();//只查看,不踢出

qq.Clear();//清空集合
bool bb =qq.Contains(3);//判断是否包含这个元素

foreach (object b in qq)
{
Console.WriteLine(b);
}

Console.ReadLine();

3、哈希表

Hashtable hashtable=new Hashtable();

hashtable.Add(0,"**")//添加元素,“,”前的为key,是添加的元素的键;“,”后的为value,是添加的元素的值,此值可以为空引用。

hashtable.Clear();//移除Hashtable中的元素。

hashtable.Remove(0);//移除Hashtable中指定的元素,Remove()的括号中填的是key。

Console.WriteLine(hashtable.Contains(0));//判断Hashtable中是否包含指定的键。

Console.WriteLine(hashtable.ContainsValue("**"));//判断Hashtable中是否包含指定的键值。

(二)例题

1、输入班级人数,根据人数创建集合ArrayList,先存人名,紧跟着分数,向表格一样打印,前面是人名,后面是成绩。

主要代码:

            Console.Write("请输入班级人数:");
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine();
            ArrayList grade = new ArrayList();
            for (int i = 0; i < n; i++)//法一
            {
                Console.Write("请输入姓名:");
                string name = Console.ReadLine();
                grade.Add(name);
            }
            Console.WriteLine();
            for (int i = n; i < 2 * n; i++)
            {
                Console.Write("请输入分数:");
                double score = double.Parse(Console.ReadLine());
                grade.Add(score);
            }
            Console.WriteLine();
            Console.WriteLine("姓名\t分数");
            for (int i = 0; i < n; i++)
                Console.WriteLine(grade[i] + "\t" + grade[n + i]);
            Console.WriteLine();
            for (int i = 0; i < 2 * n; i++)//法二
            {
                if (i == 0)
                {
                    Console.Write("请输入姓名:");
                    string name = Console.ReadLine();
                    grade.Add(name);
                }
                else if (i % 2 == 0)
                {
                    Console.Write("请输入姓名:");
                    string name = Console.ReadLine();
                    grade.Add(name);
                }
                else
                {
                    Console.Write("请输入分数:");
                    double score = double.Parse(Console.ReadLine());
                    grade.Add(score);
                }
            }
            Console.WriteLine();
            Console.WriteLine("姓名\t分数");
            for (int i = 0; i < 2 * n; i++)
            {
                if (i == 0)
                    Console.Write(grade[i] + "\t");
                else if (i % 2 == 0)
                    Console.Write(grade[i] + "\t");
                else
                    Console.Write(grade[i] + "\n");
            }
            Console.WriteLine();
                Console.ReadLine();

结果:

1、

2、

 

posted on 2016-05-11 21:04  bosamvs  阅读(189)  评论(0编辑  收藏  举报

导航