一、ArrayList集合复习
//定义
ArrayList al = new ArrayList();
//添加元素
al.Add();
//插入元素
al.Insert(,);
//查看个数
int a = al.Count;//count数数的意思
//清空集合
al.Clear();
//克隆一个集合
al.Clone();
//判断是否包含一个值
bool b = al.Contains("");
//查看3第一个出现的索引号
int c = al.IndexOf();
//查看3最后一个出现的索引号
int d = al.LastIndexOf();
//移除3这个数据
al.Remove();
//移除索引号为3的数据
al.RemoveAt();
//排序,自动按照升序排列
al.Sort();
//翻转集合,即按照降序排列
al.Reverse();
二、特殊集合
//stack集合 干草堆 栈集合
//先进后出 一个一个的取值 一个一个的赋值
//定义方式
//Stack aa = new Stack();
////向集合内推送元素
//aa.Push(1);
//aa.Push(2);
//aa.Push(3);
//aa.Push(4);
//aa.Push(5);
////POP 只要元素被弹出,集合中就没有了
////Console.Write(aa.Pop());
////Peek() 只是拿出来看看,并不进行移除
//Console.WriteLine(aa.Peek());
////清空集合
//aa.Clear();
////克隆
//Stack bb = new Stack();
//bb=(Stack)aa.Clone();
////遍历集合 正着推进去,倒着打印出来
//foreach (object aaa in aa)
//{
// Console.WriteLine(aaa);
//}
//Queue 队列集合
//先进先出 一个一个赋值 一个一个取值
//定义方式
//Queue que = new Queue();
//添加数据
//que.Enqueue(1);
//que.Enqueue(2);
//que.Enqueue(3);
//que.Enqueue(4);
//que.Enqueue(5);
//移除一个数据
//Console.WriteLine(que.Dequeue());
//Peek() 把数据拿出来看一下
//Console.WriteLine(que.Peek());
//遍历集合
//foreach (object aa in que)
//{
// Console.WriteLine(aa);
//}
//Hashtable 哈希表
//先进后出,一个一个赋值,但是只能一起取值,
Hashtable ht = new Hashtable();
ht.Add(, "张三");
ht.Add(, "李四");
ht.Add(, "王五");
ht.Add(, "赵六");
ht.Add(, "冯七");
//移除某个Key值以及value值
//ht.Remove(2);
//判断是否包含
//Console.WriteLine(ht.Contains(2));
//遍历集合
//类似于Stack集合,倒序打印
foreach (int i in ht.Keys)
{
Console.WriteLine(i);
}
foreach (string s in ht.Values)
{
Console.WriteLine(s);
}
三、枚举类型
//利用枚举类型读取集合中的所有数据,像表格一样排列
//IDictionaryEnumerator id = ht.GetEnumerator();//获取到里面的每一个Key值以及value值,需要进行循环打印
//while (id.MoveNext())//移动到下一个key与value值
//{
// Console.WriteLine(id.Key + "\t" + id.Value);
//}
四、练习:
//输入班级人数,根据人数创建Array集合,先存人名,紧跟着分数
//打印出来,像表格一样,前面是人名,后面是成绩
Console.Write("请输入班级人数:");
ArrayList al=new ArrayList();
int n=int.Parse(Console.ReadLine());
for (int i = ; i < n; i++)
{
Console.Write("请输入"+(i+)+"个人的姓名:");
string xm = (Console.ReadLine());
al.Add (xm);//意思是把输入的元素储存到集合里面
Console.Write("请输入"+(i+)+"个分数:");
double fenshu = double.Parse(Console.ReadLine());
al.Add (fenshu);
}
Console.WriteLine("姓名"+"\t"+"分数");
//因为在前面真正是输入了双倍的元素2*n,所以这里i<2*n,后面的i+=2意思是一行两个因素,下一行是第三第四个因素,所以是i=i+2
for (int i = ; i < n*; i+=)
{
Console.WriteLine(al[i]+"\t"+al[i+]);
}
Console.ReadLine();