zoukankan      html  css  js  c++  java
  • 11、C#基础整理(特殊集合和哈希表)

    特殊集合:队列、栈

    一、栈Stack类:先进后出,没有索引

    Stack ss = new Stack();

    1、增加数据:push :将元素推入集合

    ss.Push(3);
    ss.Push(5);
    ss.Push(7);

    2、获取数据:
    (1)peek返回位于stack顶部的对象但不移除(获取最后一个进入的元素的值)

    Console.WriteLine(ss.Peek());//7

    (2)pop将元素一个个弹出集合(读取并移除)

    Console.WriteLine(ss.Pop());//7
    Console.WriteLine(ss.Pop());//5

    3、其他操作

    ToArray:返回数组类型,将栈中的元素转换成集合,然后放到数组里

    object[] shuzu = (object[])ss.ToArray();
    foreach(object a in shuzu)
    {
    Console.WriteLine(a);
    }

    二、队列Queue类:先进先出

    1、定义方法:

    Queue q = new Queue();

    2、增加:

    (1)Enqueue将元素放到队列末尾

    q.Enqueue(3);
    q.Enqueue(5);
    q.Enqueue(7);

    (2)Peek:返回开始处的对象但不移除

    Console.WriteLine("Peek:"+q.Peek());//3

    3、获取:Dequeue移除并返回位于队列开始处的对象

    Console.WriteLine("Dequeue:"+q.Dequeue());

    哈希表Hashtable类

    以键值成对读取数据,可以自己设置索引

    Hashtable ht = new Hashtable();
    ht.Add("a", "zhangsan");//一个任意类型的key + 一个任意类型的value值
    ht.Add("b", "lisi"); 
    ht.Add("c", "wangwu");

    打印哈希表中元素个数的方法:

    ICollection htkeys = ht.Keys;
    Console.WriteLine(htkeys.Count);

    读取key值 

    //copyto---复制到一个数组中
    string[] ss1 = new string[3];
    htkeys.CopyTo(ss1,0);

    读取value值

    ICollection htvalues = ht.Values;
    string[] ss2 = new string[3];
    htvalues.CopyTo(ss2,0);

    成对读取:key和value都需要重新定义

    IDictionaryEnumerator id = ht.GetEnumerator();
    //object key1=id.Key;//获取一个值
    //object value1 = id.Value;
    //id.MoveNext();//往下移一个元素,返回布尔值,如果为false就不能再移动了
    while(id.MoveNext())
    {
    object key2=id.Key;
    Console.WriteLine(key2.ToString());
    object value2 = id.Value;
    Console.WriteLine(value2.ToString());
    }

    ht.Remove("b");   ——  根据键值移除该键

  • 相关阅读:
    [LeetCode] Rotate Image
    [置顶] (奇迹冬瓜)坦克大战[MFC框架]
    spinner自定义,效果如腾讯QQ账号选择时候的下拉列表
    sqlmap dvwa SQL Injection使用小记
    Activex打包于发布完整版---微软证书制作
    假设web应用的文档根目录为MyApp,那么可以从哪里找到database.jar文件。
    无状态会话Bean、有状态会话Bean、CMP与BMP中,哪一种Bean不需要自己书写连接数据库的代码?
    EJB的优点有哪些?(选择2项)
    对触发器的认识;
    消耗资源的SQL的定位方法;
  • 原文地址:https://www.cnblogs.com/wleaves/p/4172610.html
Copyright © 2011-2022 走看看