zoukankan      html  css  js  c++  java
  • 【塔 · 第 一 条 约 定】

    【 塔 · 第 一 条 约 定 】//内容大部分参照网络而整理,有些无法判断正误。

    1、整理c#:Array Arraylist List Hashtable Dictionary Stack Queue等
    ==>数组Array:
            int[] a;//初始化数组;
            a=new int[3];
            a=new int[3]{1,2,3};
            a=new int[]{1,2,3};//开辟新空间,赋值
    ==>动态数组ArrayList:(容量不定)
            1)Add()向数组中添加一个元素, 
            2)Remove()删除数组中的一个元素 
            3)RemoveAt(int i)删除数组中索引值为i的元素 
            4)Reverse()反转数组的元素 
            5)Sort()以从小到大的顺序排列数组的元素 
            6)Clone()复制一个数组 
           
            ArrayList a=new ArrayList();//定义
            a.Add(1);//单个添加
           
            int[] numbers=new int[2]{1,2};
            a.AddRange(numbers)//将数组numbers中所有元素添加到a中;
            a.Remove(2);//移除值为2的元素
            a.RemoveAt(2);//移除第二个元素
            ArrayList a1=new ArrayList(a.GetRange(1,2));//新的ArrayList a1只取a中的一部分元素
            Console.WriteLine(a.Sort());//从小到大输出a中元素
            Console.WriteLine(a.Reverse());//反序输出a中所有元素
            ArrayList b=new ArrayList();
            b=a.Clone();//将a克隆到b
    ==>强类型列表List(可通过索引访问对象)
            List nums=new List();//声明一个List对象,其中T为int,string等类型名
            让类型名为int
            nums.Add(1);//加入一个元素
            nums.Insert(2,3);//往第二个位置加入元素3
            nums.Remove(1)//移除指定元素
    ==>Dictionary:表示键和值的集合。其遍历输出的顺序就是加入的顺序。
       常用属性:
           1)Comparer:获取Directionary中的键是否相等的IEqualityComparer(判断,返回true或false)
           2)Count:获取包含在Dictionary中的键/值对的数目
           3)Item:获取或设置与制定的键相关联的值
           4)Keys:获取包含Dictionary中的键的集合
           5)Values:获取包含Dictionary中值得集合
        常用方法:
           1)Add:将制定的键和值添加到Dictionary中
           2)Clear:从Dictionary中移除所有的键和值
           3)ContainsKey:确定Dictionary中是否包含指定的键
           4)ContainsValue:确定Dictionary中是否包含特定的值
           5)Equals:已重载,确定两个Object实例是否相等
           6)GetEnumerator:返回循环访问Dictionary的枚举数
           7)GetHashCode:用作特定类型的哈希函数。GetHashCode适合在哈希算法和数据结构(如哈希表)中使用。 (从 Object继承。) 
           8)GetObjectData :实现 System.Runtime.Serialization.ISerializable接口,并返回序列化 Dictionary实例所需的数据。
           9)GetType :获取当前实例的 Type。 (从 Object继承。) 
          10)OnDeserialization :实现 System.Runtime.Serialization.ISerializable接口,并在完成反序列化之后引发反序列化事件。
          11)ReferenceEquals :确定指定的 Object实例是否是相同的实例。 (从 Object继承。) 
          12)Remove :从 Dictionary中移除所指定的键的值。
          13)ToString: 返回表示当前 Object的 String。 (从 Object继承。)
          14)TryGetValue :获取与指定的键相关联的值
          
           Dictionary my=new Dictionary();
           my.Add("aaa","111");
           my.Add("bbb","222");//添加键,且不可重复,否则会抛异常.前一个是建,后一个是值,值可以是数组和类
           try
           {
                 my.Add("aaa","111");
            }
            catch(ArgumentException ex)
           {
                Console.WriteLine("此键已存在+ex.Messege");
           }//捕捉异常,输出异常信息

    ==>Hashtable类:哈希表。类似于Directionary。哈希表是经过优化的,访问下标的对象先散列过。如果以任意类型键值访问其中元素会快于其他集合。 
           GetHashCode()方法返回一个int型数据,使用这个键的值生成该int型数据。哈希表获取这个值最后返回一个索引,表示带有给定散列的数据项在字典中存储的位置。
           Hashtable 和 Dictionary 类型
           1)单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分.
           2)多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型. 而 Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减.
           3)Dictionary 有按插入顺序排列数据的特性 (注: 但当调用 Remove() 删除过节点后顺序被打乱), 因此在需要体现顺序的情境中使用 Dictionary 能获得一定方便.
            HashTable中的key/value均为object类型,由包含集合元素的存储桶组成。存储桶是 HashTable中各元素的虚拟子组,与大多数集合中进行的搜索和检索相比,存储桶可令搜索和检索更为便捷。每一存储桶都与一个哈希代码关联,该哈希代码是使用哈希函数生成的并基于该元素的键。HashTable的优点就在于其索引的方式,速度非常快。如果以任意类型键值访问其中元素会快于其他集合,特别是当数据量特别大的时候,效率差别尤其大。
            HashTable的应用场合有:做对象缓存,树递归算法的替代,和各种需提升效率的场合。
          
            System.Collections.Hashtable ht = new System.Collections.Hashtable(); //声明
            ht.Add(1, "apple");
            ht.Add(2, "banana");
            ht.Add(3, "orange"); //键不可重复和空

    HashTable是经过优化的,访问下标的对象先散列过,所以内部是无序散列的,保证了高效率,也就是说,其输出不是按照开始加入的顺序,而Dictionary遍历输出的顺序,就是加入的顺序,这点与Hashtable不同。

    ==>SortedList类:与哈希表类似,区别在SortedList中的Key数组是排好序的
             System.Collections.SortedList list=new System.Collections.SortedList(); 
             list.Add("key2",2); 
             list.Add("key1",1); 
             for(int i=0;i
            {
                  System.Console.WriteLine(list.GetKey(i)); 
             }
    ==>Srack类,栈。后进先出。push方法入栈,pop方法出栈。
           System.Collections.Stack stack=new System.Collections.Stack(); 
           stack.Push(1); 
           stack.Push(2); 
           System.Console.WriteLine(stack.Peek()); 
           while(stack.Count>0) 
           {
                System.Console.WriteLine(stack.Pop());    
           } 
    ==>Queue类:队列,先进先出,enqueue方法入队列,dequeue放大出队列。
           System.Collections.Queue queue=new System.Collections.Queue(); 
           queue.Enqueue(1); 
           queue.Enqueue(2); 
           System.Console.WriteLine(queue.Peek()); 
           while(queue.Count>0) 
           {
                  System.Console.WriteLine(queue.Dequeue());
            }

    2、整理C#:for、foreach、while、switch等
    ==>for循环:与c,c++中方法类似
            int i,n=18;
            for(i=1;i
            {
                ......
             }
    ==>foreach,遍历
           foreach(int i int n)
          {
                 ConSole.WriteLine(a[i]);
           }//输出数组a中0到n个元素
    ==>while
          while(判断条件)
         {
            ........
         }//当判断条件为真时,执行括号中语句
    ==>switch
         switch(state)
        {
            case 1:i=1;break;
            case 2:i=2;break;
            ......
            case n:i=n;break;
            default:i=0;break;
        }//判断state的值分别执行其对应分支的语句,末尾要加break以种植switch,若无一符合执行default后的语句

    分享:
    0

  • 相关阅读:
    CodeForce 677C
    1A -- Theatre Square
    CodeForce 677B Vanya and Food Processor
    CodeForce 680C Bear and Prime 100
    1B -- Spread sheet
    socket.io 推送
    网站性能测试
    openlayers/// Puppeteer.js
    div 光标处插入内容
    emjoi 表情
  • 原文地址:https://www.cnblogs.com/fzu031602506/p/6443760.html
Copyright © 2011-2022 走看看