标签:
十三、特殊集合
(一)定义
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、
标签:
原文地址:http://www.cnblogs.com/bosamvs/p/5483295.html