集合2

it2025-01-22  18

十三、特殊集合

(一)定义

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、

 

转载于:https://www.cnblogs.com/bosamvs/p/5483295.html

最新回复(0)