• S2:ArrayList


    1.ArrayList 

         ArrayList非常类似于数组,也有人称它为数组列表,ArrayList可以动态维护。

          因为数组的长度是固定的,而SArrayList的容量可以根据需要自动扩充。

          ArrayList也提供了一系列的方法对其中的元素进行访问,增加和删除操作。

          ArrayList累属于System.Collections命名空间。

      语法:

    复制代码
        using System.Collections;
    
        //创建容量为0的ArrayLst对象
    
                ArrayList stu=new ArrayList();
            
                //创建容量为5的ArrayList对象
    
                ArrayList tea=new ArrayList(5);
    复制代码

      常用的属性和方法:

          属性名称            说  明

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

          返回值类型    方 法 名 称            说    明

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

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

          int        Remove(Object value)         从ArrayList指定特定对象

          int        Clear()                从ArrayList中移除所有对象

       (1).给ArrayList添加数据

        ArrayList通过add()方法添加元素

          返回值:值是一个int整形,用于返回所添加的缘故的索引

          参数:    如果向ArrayList中添加的元素是值类型,这些元素就都会装箱处理转换为Object 引用类型,然

              后保存。

        例:

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

        (2)存取ArrayList中的单个元素

           

    SE eng =(SE) eng [0];
    MessageBox.Show(eng.SayHi());

          每当我们获取它的每个元素时,都需要进行类型的装换,这里转换为SE类型

        遍历ArrayList中的元素:

            

    int [] array = new int []{0,1,2,3,4};
    for(int i=0;i<array.length;i++)
    {
         Console.WriteLine(array[i]);      
    }

      (4)删除ArrayList中的元素、

        

    //建立员工集合
    ArrayList eng =new ArrayList();
    //演示删除元素
    eng,RemoveAt(0);        //删除索引为0的元素
    eng.Remove(ema);        //删除对象名为ema的元素

        ArrayList添加个删除元素都会使剩余元素的索引自动改变。

        Remove()方法和RenmoveAt()方法只能删除一个元素,当需要删除全部元素时,就可以用Clear()方法删除集合宏的

          所有元素。

        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中移除所有元素

        (1)Hashtable通过Add()方法添加元素

          实例:

            

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

        获取Hashtable的元素

          和ArrayList不同,访问Hashtable元素时可以直接通过剑3名来获取具体值,同样,

          由于值类型是Object,所以当得到一个值时,也需要通过类型转换得到指定类型的

          对象。

        例:

          

    //建立部门工程师员工集合
    Hashtable eng = (SE) eng["000"];
    MessageBox.Show(se23.SayHi());

        3.删除Hashtable的元素

          通过键(key),使用Remove()方法就可以删除Hashtable的元素。

          例:

          

    eng.Remove("000");

        4.遍历Hashtable中的元素

          由于Hashtable不能通过索引访问,所以遍历一个Hashtable只能用(foreach)方法。

          

    复制代码
    //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 Lst<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()+"个员工");
    复制代码

          

          List<T>和ArrayList的区别

                                                    List<T>                                                               ArrayList

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

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

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

        ------泛型集合 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<k,y>和Hashtable的对比

                                     Dictionary<k,y>                    Hashtable

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

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

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

  • 相关阅读:
    Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_并行运算-1
    Matlab高级教程_第一篇:Matlab基础知识提炼_06
    利用ubuntu的alias命令来简化许多复杂难打的命令
    无线路由设置
    解决Ubuntu下使用命令行subl 打开Sublime text3无法输入中文的问题
    ubuntu 14.04 lamp 安装与配置
    ubuntu14.04 login loop issue
    机器学习资源大全
    技巧:利用putty通过win7访问ubuntu
    使用XML-RPC进行远程文件共享
  • 原文地址:https://www.cnblogs.com/wsnb8/p/8538937.html
Copyright © 2020-2023  润新知