zoukankan      html  css  js  c++  java
  • C#集合类:动态数组、队列、栈、哈希表、字典(转)

    1、动态数组:ArrayList

    主要方法:Add、AddRange、RemoveAt、Remove

    2、队列:Queue

    主要方法:Enqueue入队列、Dequeue出队列、Peek返回Queue开始处的对象但不删除

    3、栈:Stack 后进先出

    主要方法:Push方法入栈,Pop方法出栈、Peek弹出最后一项不删除

    4、哈希表:HashTable 通过键值对更快捷的查找元素。键不能为空引用,但值可以

    示例:Hashtable ht=new Hashtable(); //创建一个Hashtable实例 
            ht.Add("E","e");//添加key/value键值对   

            ht.Add("A","a"); 
            ht.Add(
    "C","c"); 

        if(ht.Contains("E")) //判断哈希表是否包含特定键,其返回值为true或false 
             ht.Remove("E");

       ht.Clear();//清空

       //遍历哈希表:

       for(DictionaryEntry de in ht)

      {

      Console.write(de.Key);

      Console.write(de.Value);

      }  

         //对哈希表进行排序

       ArrayList list=new ArrayList(ht.Keys);

       list.Sort();

       foreach(string s in list)

      {

      Console.Write(ht[s]);  

      }

    5、SortedList表示键/值对的集合:区别于HashTable之处是SortedList中的Key数组是排好序的

    6、Dictionary泛型集合

    命名空间System.Collections.Generic

    非泛型集合对应的泛型集合类:

    非泛型集合类     泛型集合类

    ArrayList         List<T>

    HashTable       Dictionary<T>

    Queue             Queue<T>

    Stack              Stack<T>

    SortedList       SortedList<T>

    示例:

      Dictionary<stringstring> myDic =new Dictionary<stringstring>(); 
         myDic.Add(
    "aaa""111"); 
         myDic.Add(
    "bbb""222"); 
         myDic.Add(
    "ccc""333"); 
         myDic.Add(
    "ddd""444"); 
         
    //如果添加已经存在的键,add方法会抛出异常 
         try 
         { 
             myDic.Add(
    "ddd","ddd"); 
         } 
         
    catch (ArgumentException ex) 
         { 
             Console.WriteLine(
    "此键已经存在:"+ ex.Message); 
         } 
         
    //解决add()异常的方法是用ContainsKey()方法来判断键是否存在 
         if (!myDic.ContainsKey("ddd")) 
         { 
             myDic.Add(
    "ddd""ddd"); 
         } 
         
    else 
         { 
             Console.WriteLine(
    "此键已经存在:"); 
         } 
       
         
    //而使用索引器来负值时,如果建已经存在,就会修改已有的键的键值,而不会抛出异常 
         myDic ["ddd"]="ddd"
         myDic[
    "eee"="555"
       
         
    //使用索引器来取值时,如果键不存在就会引发异常 
         try 
         { 
            Console.WriteLine(
    "不存在的键"fff"的键值为:"+ myDic["fff"]); 
         } 
         
    catch (KeyNotFoundException ex) 
         { 
             Console.WriteLine(
    "没有找到键引发异常:"+ ex.Message); 
         } 
         
    //解决上面的异常的方法是使用ContarnsKey() 来判断时候存在键,如果经常要取健值得化最好用 TryGetValue方法来获取集合中的对应键值 
         string value =""
         
    if (myDic.TryGetValue("fff"out value)) 
         { 
             Console.WriteLine(
    "不存在的键"fff"的键值为:"+ value ); 
         } 
         
    else 
         {    
             Console.WriteLine(
    "没有找到对应键的键值"); 
         } 
       
         
    //下面用foreach 来遍历键值对 
         
    //泛型结构体用来存储健值对 
        foreach (KeyValuePair<stringstring> kvp in myDic) 
        { 
            Console.WriteLine(
    "key={0},value={1}", kvp.Key, kvp.Value); 
        } 
        
    //获取值得集合 
        foreach (string s in myDic.Values) 
        { 
            Console.WriteLine(
    "value={0}", s); 
        } 
        
    //获取值得另一种方式 
        Dictionary<stringstring>.ValueCollection values = myDic.Values; 
        
    foreach (string s in values) 
        { 
            Console.WriteLine(
    "value={0}", s); 
        } 

  • 相关阅读:
    [导入]北京机场大巴路线表
    [导入]linux下java环境的安装与配置
    [导入]彻底治愈脚气
    [导入]学习效率低,没有拼命的行动怎么办?
    [导入]在RedHat Enterprise Linux AS4 下启用Oracle 9i企业管理器
    [导入]CZoneSoft Seeking CoOperator For Investment or Technology
    [导入]CZoneSoft 视频互动 : 新增音乐盒 方便个人K歌的时候播放伴奏音乐
    [导入]redhat as4下文件管理常用命令
    [导入]超级恶心的mms.tjcq2.com拦截不住地IE随机弹出广告
    CZoneSoft 音频、视频在线录制留言升级1
  • 原文地址:https://www.cnblogs.com/bluestorm/p/3524151.html
Copyright © 2011-2022 走看看