• C# 集合


    前面讲的数组,数组类型必须是同类型,而且限定长度

    那么假设有不知道多少个变量,有几个类型 一块处理起来特别麻烦 那么就有了集合

    特点: 不同类型  长度不固定


    要使用集合,必须先引用命名空间 Using System.Collections 

    放在这里面

    集合有六大类

                     弱类型                    ArrayList集合

                     强类型(泛类型)      List集合

                     哈希表集合 (弱类型) Hashtable集合

                     字典(强)              Dictionary集合

       特殊:      队列集合                Queue集合

                      栈桥集合                Stack集合

    一、ArrayList集合       

     ArrayList与Array名字相似,但是都有异同

    相同点:可以使用整数索引寻找变量元素,包括  取值和赋值索引都是从0开始 

              都是统一操作数据

    不同点:

              ⑴ArrayList是集合,Array是数组;

              ⑵ArrayList是具体类,Array是抽象类;

              ⑶数组必须在实例化制定元素的数量,该数量一旦确定不可以更改了,类型必须同类型

              Array集合实例化不指定集合元素,数量可以无数个,不确定,还可以插队,可以指定初始容量

              ⑷数组获得元素数量用Length,而集合获得元素数量是使用Count

              ⑸数组可以多维,集合只能是一维

      定义

      ArrayList s=new ArrayList();    //(集合类型) ArrayList  变量=new ArrayList;

     s.Add();                                //变量.Add( 添加的东西,不是索引)  object类型:所有类型的基础类型(基类)int string double bool   Datetime...什么类型都可以

    赋值

    ArrayList arr =new ArrayList();

    arr.Add(10);

    arr.Add("aaa");

    arr.Add(true);

    arr.Add(10.3);

    arr.Add(2017-3-2);

    取值

    和数组一样  都是用索引取值

    arr[0]=10;    //都是从0开始

    arr[1]="aaa";

    arr[2]=true;

    集合的数量   arr.count=5;//  里面添加5个元素  数量就是5

    集合插队一个元素   

    arr.Insert(2,333) //就是把索引2前面插一个元素333  把原来索引2位置往后挤一下

    arr.Insert(索引,值/变量)

    移除:
    arr.Remove(10.3); //就是集合里面的10.3 移除了

    arr.Remove();

    arr.RemoveAt(索引);

    反转:
    arr.Reverse(); - 全部反转
    arr.Reverse(索引,个数); - 指定反转

    清空:
    arr.Clear();   //把之前的数据清空

    包含:

    arr.Contains(值/变量);//确定某个值、变量是否在集合里面

    匹配:

    arr.IndexOf(值变量);//从集合寻找某个值、变量第一个匹配项索引

    二、强类型    List集合   上面用的类型太乱了 固定一个类型

     比如:

     

    不同一类型

    系统报错

    List<T>   //T代表泛型  必须给它一个类型

    定义

    List<int> a=new List<int>();

    List<string>a=new List<string>();

    List<基础类型>变量=new List<类型>();

    赋值

    List<int>a=new List<int>();

    a.Add(值); 和上面的集合一样// 集合基本都是这样

    取值 

    a[索引]=值/变量;集合基本都是这样

    上面的功能都能用

    三、哈希表集合   Hashtable集合   弱类型

    哈希表集合  没有索引  可以用键代表

    不允许插队

    命名空间

    加上 Using Ystem.Collections

     定义 赋值

    Hashtable hs=new Hashtable();

    hs.Add(1,"呵呵"); //  1代表键1  呵呵代表值

    hs.Add("aaa","哈哈");// 键aaa   值是哈哈

     Console.Write(hs[1]);//括号里面也可以写为hs.["aaa"]

     那么显示的就是呵呵

    循环取值打印

     打印键是

     

    打印值就是把Key改为Values

    显示是

    四、字典:强类型
    Dictionary<int, string> dic = new Dictionary<int, string>();

    五、队列集合  Queue

    先进先出

    定义

     Queue a=new Queue();

     赋值

    a.Enqueque("aaa");   //进第一个队列是aaa

    a.Enqueue(111);    //进第二个队列是111

    a.Dequeque();//移除并且返回开始的对象

     Console.Write(a.Dequeque());//显示aaa  意思就是最靠前的那个人显示并且走人   剩下1个人

    a.Enqueque   进队列

     a.Dequeque   出队列

    a.clear       清空

    六、栈桥集合  Stack集合

    先进后出来

    Stack aaa=new Stack();

    aaa.push("asd");//  推进去一个asd

    aaa.push(111);// 推进去一个111

    Console.Write(aaa.pop());//显示的是111   意思就是把最后一个拽出来(弹出来)   111  并且抽走  还剩下1个

  • 相关阅读:
    相机中白平衡的算法模拟实现
    双边滤波算法的简易实现bilateralFilter
    图像处理卷积算法实现
    最快的3x3中值模糊
    黑米手机抢购软件通杀破解补丁
    分享一款12306购票软件
    快速堆栈模糊算法
    大数据(1)---大数据及HDFS简述
    springboot自动装配(3)---条件注解@Conditional
    随机瓜分百万红包
  • 原文地址:https://www.cnblogs.com/zhangwei99com/p/6493164.html
Copyright © 2020-2023  润新知