• 使用集合组织相关数据。


    --集合概述。

    可以动态扩容,可以指定长度,但超出时,下次扩容时是原来的2倍。

    --ArrayList  单列集合

    类似于数组,也有人称它为数组列表,可根据需要自动扩充,它的索引会根据程序的扩展而重新进行分配和调整,提供了一系列的方法对其中的元素进行访问,新增和删除。

    提示:和数组类似,ArrayList中的存储数据称为元素,可以保存的元素数就是它的容量,其默认值是0;可以通过索引访问ArrayList的元素 ,

    是一种动态数组,在new的时候,可以不指定长度,当你添加数据的时候,发现容量不够,他会自动扩容。

    ArrayList:是属于System.Collections命名空间,包含接口和类

    常用的方法和属性

    Count:获取ArrayList中实际包含的元素数。

    返回值类型                    方法名称                  说明

    int:Add(Object value):将对象添加到ArrayList的结尾处。

    void    :RemoveAt(int index):移除ArrayList指定索引处的元素            

    void  :Remove(Object  value):从ArrayList中移除特定的对象

    void     :Clear():从 ArryaList中移除所有的元素

    示例

    复制代码
        private void btntest_Click(object sender,EventArge e){
         //建立部门工程师集合
        ArrayList list =new ArrayList();
        //初始化一个员工
        SE se=new SE();
        se.Name="张三";                //名称    
        se.Id=1;                    //工号
        se.Age=1;              //年龄
        list.Add(se);
        MessageBox.Show("部门有几个员工"+list.Count.ToString());  
    }
    复制代码

    集合初始化器:

    复制代码
    ArrayList list=new ArrayList(){
        //初始化人员信息
         new SE(){Name="毛毛",Age=17,ID=101},       
         new SE(){Name="毛小毛",Age=17,ID=101},
    
    }
    MessageBox.Show(string.Formt("部门人员{0}",list.Count.ToString()));
    复制代码

    遍历ArrayList中的元素

    复制代码
    //for遍历 
    for(int i=0;i<list.Count;i++){
         SE seFor=(SE)list[i];
        Console.WriteLine(seFor.Name);    //for遍历出ArrayList中的Name元素
    }   
    
    //foreach遍历
    foreach(Object obj in  list){
         SE seFor=(SE)obj;
         Console.WriteLine(seFor.Name);    //foreach遍历出ArrayList中的Name元素
    } 
    复制代码

    删除ArrayList中的元素 

    使用 Remove()方法,删除对象名的元素,使用RemoveAt()方法删除索引为几的元素。使用Clear()方法是删除集合中的所有元素,

    Contains(Object obj)判定某个元素是否在于集合中
    Insert(int index,Object value)在集合指定位置添加元素

    Hashtable

    Hashtable 通过Add了()方法添加元素,也属于System.Collections命名空间。

    Hashtable的数据是通过键(Key)和值(value)来组织的 。

    常用的属性和方法

    属性名称

    Count :获取包含在Hashtable中的键/值对的数目

    Keys:获取包含在Hashtable中的集合,Values:获取包含在Hashtable中的集合

    返回值类型

    void    :Add(Object key,Object vaue)    : 将指定的键/值添加到Hashtable中

    void    :Remove(Object key)         :从Hashtable中移除指定的键的元素

    void    :Clear()         :从Hashtable中移除所有元素

     示列

    复制代码
    //new 一个Hashtable的对象
    Hashtable has=new Hashtable();
    //初始化一个员工的信息
     SE se=new SE();
       se.Name="张三";
       se.ID=1;
       se.Age=17;
    
     has.Add(se.ID,se);
    
    Console.WriteLine(string.Format("部门{0}个员工",has.Count.ToString()));
    复制代码

    获取Hashtable的元素

    和ArrayList不同,Hashtable可以通过键名来获取具体值,同样,用于值的类型是Object,所有当得到一个值的时候需要通过类型转换得到指定类型的对象。

    删除Hashtable的元素

    通过键(key),使用Remove()方法就可以删除Hashtable的元素,如:has.Remove("000");

    遍历Hashtble元素

    复制代码
    //foreach遍历
    foreach(Object obj in  has.Keys){
    
              Console.WriteLine((string) obj);    //foreach遍历出Hashtable中的键元素
    } 
    
    //foreach遍历
    foreach(Object obj in  has.Values){
         SE seFor=(SE)obj;
         Console.WriteLine(seFor.Name);    //foreach遍历出Hashtable中的值元素
    } 
    复制代码

    --泛型和泛型集合

    泛型集合List<T>

    语法:List<T> 对象名 =new List<T>();

    <T>中的T可以对集合中的元素类型进行约束,T表明集合中的管理的元素类型,

    示例

    复制代码
    //建立工程员的集合
    List<SE>  engineers=new List<SE>();
    //初始化一个工程员工
    SE se=new SE();
    se.Name="张三";
    se.Id=101;
    se.Age=1;
    
    engineers.Add(se);
    
    Console.WriteLine(engineers.Count.ToString()+"个员工");
    复制代码

    使用foreach遍历

    foreach(SE ss in engineers){

    Console.WriteLine(ss.Name,ss.Id,ss.Age);

    }

    可以使用索引和对象删除

    engineers.RemoveAt(0);    engineers.Remove(ema);

    List<T>和ArrayList的区别

                                                    List<T>                                                                                                          ArrayList

    不同点:对所保存元素进行类型约束,                                                                                              可以增加任何类型

                 添加/读取值类型元素无须拆箱和装箱                                                                                  添加/读取值类型元素须拆箱和装箱

    相同点:通过索引访问集合中的元素,添加和删除元素方法相同

    --泛型集合 Dictionary<k,y>

    Dictionary<k,y> 它具有泛型的全部特性,编译时检查类型约束,获取元素时无须类型转换,并且它存储数据的方式和Hashtable类似,也是通过key / value(键/值)对元素的保存。

    语法:Dictionary<k,y>对象名 =new Dictionary<k,y>();    如:Dictionary<string,SE> engineers =new Dictionary<string,SE>();  

    示例

    复制代码
    //建立工程员工
    Dictionary<string,SE>engineers =new Dictionary<string,SE>();
    //初始化一个员工
    SE se=new SE();
    se.Name="张三";
    se.id=1;
    se.Age=17;
    
    engineers .Add(se.id,se);
    
    Console.WriteLine(engineers.Count.ToString()+"几个部门人员"); 
       
    复制代码

    Dictionary<k,y>和Hashtable的对比

                                                                            Dictionary<k,y>                                                                                  Hashtable

    不同点:

                  对所保存元素进行类型约束,                                                                                              可以增加任何类型

                  添加/读取值类型元素无须拆箱和装箱                                                                                  添加/读取值类型元素须拆箱和装箱

    相同点:

    通过索引访问集合中的元素,添加和删除元素方法相同,遍历方法相同,通过key获取Value

  • 相关阅读:
    网络测量中基于Sketch方法的简单介绍
    Reading SBAR SDN flow-Based monitoring and Application Recognition
    Reading Meticulous Measurement of Control Packets in SDN
    Reading SketchVisor Robust Network Measurement for Sofeware Packet Processing
    ovs加dpdk在日志中查看更多运行细节的方法
    后缀数组
    (转载)LCA问题的Tarjan算法
    Codeforces Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) A. Checking the Calendar(水题)
    Vijos 1816统计数字(计数排序)
    卡特兰数
  • 原文地址:https://www.cnblogs.com/liehuonanjue/p/8240906.html
Copyright © 2020-2023  润新知