运用集合需要先写system.collections
常用的集合为arraylist类;特殊集合一般会用到queue队列集合、stack栈集合和hashtable哈希表集合。
数组是连续的、同一类型数据的一块区域,而集合可以是不连续的、多种数据类型的。
初始化
arraylist al=new arraylist();
赋值
al.add(4);
al.add(3);
add方法才是真正的添加,al[0]这种赋值方法仅适于修改。
al.insert(2,"hello");//在某个索引号上插入某个元素
al.remove(4);//移除相应的元素
al.removeat(0);//移除相应索引位置的元素
al.sort();//排为升序
al.reverse();//反转集合;排降序,先排升序,再反转
al.clone();//克隆集合
ArrayList al1 = (ArrayList)al.Clone();//克隆集合
在有不同数据类型时遍历集合
foreach(object aa in al)
{console.writeline(aa);}
集合的元素默认类型为object,object为所有数据类型的基类
输入n个手机号,滚动抽奖
输入班级人数,输入姓名,英语数学语文成绩,输出英语平均分,数学最高分及姓名,语文最低分及姓名。
特殊集合
stack 干草堆集合,栈集合
一个一个赋值,一个一个取值,先进后出
初始化
stack st=new stack();
添加元素 .push()
st.push(2);
.count 取集合内元素的个数
.pop() 将元素一个一个弹出集合,只要使用一次pop方法,就会从最后一个元素开始弹出,弹出后集合中不再有这个元素
弹出时从最后推入的集合开始弹出
.peek() 只查看不弹出
.clear() 清空集合
想要全部打印集合中元素,需使用遍历集合
foreach(int aa in st)
{console.writeline(aa);} 遍历输出时,从最后输入开始往前一个一个输出
queue 队列集合
先进先出,一个一个的赋值,一个一个的取值
初始化
queue que=new queue();
添加元素:
que.enqueue(2);
que.enqueue(5);
移除一个元素,移除时会从头开始,从最开始输入的开始移除
que.dequeue();
.count 计算集合中元素个数
输出元素,用遍历集合
foreach(int aa in que)
{console.writeline(aa);}
console.writeline(que.count);//输出集合中元素个数
hashtable 哈希表集合
先进后出,一个一个赋值,但只能一次取值
初始化
hashtable ht=new hashtable;
添加元素,一个是key,一个是value;
ht.Add(1, "张三");
ht.Add(2, "张四");
ht.Add(3, "张五");
ht.Add(4, "张六");
ht.Add(5, "张七");
ht.Add(6, "张八");
哈希表集合没有索引,一个哈希表集合有两个集合,一个是keys,一个是values;
遍历集合打印:
foreach(object aa in ht.keys)
{console.writeline(aa);}
foreach(object bb in ht.values)
{console.writeline(bb);}
.remove() 将括号内的元素移除
.contains() 判断集合内是否有括号内的元素
.count 计算集合中元素的个数
使用枚举类型进行读取,排列成表格
idictionaryenumerator ide=ht.getenumerator();
while(ide.movenext())
{console.writeline(ide.key+" "+ide.value);}