zoukankan      html  css  js  c++  java
  • 集合及特殊集合

    运用集合需要先写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);}

  • 相关阅读:
    [BZOJ4755][JSOI2016]扭动的回文串(manacher+Hash)
    十二省联考2019部分题解
    [BZOJ2959]长跑(LCT+并查集)
    [BZOJ4541][HNOI2016]矿区(平面图转对偶图)
    笛卡尔树
    [CF896C]Willem, Chtholly and Seniorious(珂朵莉树)
    [BZOJ4349]最小树形图
    [BZOJ1858][SCOI2010]序列操作(线段树)
    [PA2014]Parking
    [PA2014]Budowa
  • 原文地址:https://www.cnblogs.com/wy1992/p/5967050.html
Copyright © 2011-2022 走看看