zoukankan      html  css  js  c++  java
  • 使用集合组织相关数据

    ArrayList

       (1) ArrayList非常类似数组,也称为数组列表,ArrayList可以动态维护。数组的容量是固定的,而ArrayList的容量可以根据需要来自动扩充,它的索引会根据程序的扩展而重新进行分配和调整ArrayList提供了一系列方法对其中的元素进行访问,增加删除操作。

       (2)ArrayList类属于System.Collections命名空间,这个命名空间包含接口和类,这些接口和类定义各种对象(比如列表,队列,位数组,哈希表和字典)的集合。ArrayList就属于集合的一种,因此在使用ArrayList类之前一定要引入System.Collections命名空间

             

    using System.Collections;
    //创建容量为0的ArrayList对象
    ArrayList student=new ArrayList();
    //创建容量为5的ArrayList对象
    ArrayList teachers=new ArrayList(5);
    

                    属性名称                                     说明

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

       返回值类型               方法名称                                       说明

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

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

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

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

    1.给ArrayList添加数据

                      返回值:值是一个int整型,用于返回所添加的元素的索引。

                      参数:向ArrayList中添加的元素是值类型,这些元素就都会装箱处理装换为Object引用类型。然后保存,因此ArrayList中的所用元素都是对象的引用

                     

    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());  
    }
    using System.Collections;
    
        //创建容量为0的ArrayLst对象
    
                ArrayList stu=new ArrayList();
            
                //创建容量为5的ArrayList对象
    
                ArrayList tea=new ArrayList(5);

     存取ArrayList中的单元素

    SE engineer=(SE)engineers[0];
    MessageBox.show(engineer.SayHi());

    遍历ArrayList中的元素        

    static void Main(string[] args)
    {
         int[]array=new int[]{0,1,2,3,4};
         for(int i=0;i<array.Length;i++)
          {
              console.WriteLine(array[i])
    
           }
    }

     泛型集合 Dictionary<K,v>

          Dictionary<k,v> 它具有泛型的全部特性,编译时检查类型约束,获取元素时无须类型转换,并且它存储数据的

          方式和Hashtable类似,也是通过key / value(键/值)对元素的保存。

        语法:

              Dictionary<k,v>对象名 =new Dictionary<k,v>();   

           如:Dictionary<string,SE> engineers =new Dictionary<string,SE>();  

            List《T》与ArrayList的区别

                                         List《T》                                      ArrayList

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

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

           相同点:     通过索引访问集合中的元素

                                通过索引访问集合中的元素

                                添加和删除元素方法相同

     获取Hashtable的元素

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

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

          对象。

        

    Hashtable engineers=new Hashtable ();
    //访问单个元素
    Hashtable eng = (SE) eng["000"];
    MessageBox.Show(se23.SayHi());

    3.删除Hashtable的元素

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

    //删除元素
    engineers.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中的值元素
    } 

    Dictionary<k,v>和Hashtable的对比

                                     Dictionary<k,v>                                      Hashtable

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

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

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

  • 相关阅读:
    nrm安装与使用
    10、ReactJs基础知识10--组件组合 vs 继承
    9、ReactJs基础知识09--状态提升
    8、ReactJs基础知识08--表单
    7、ReactJs基础知识07--列表渲染 & Key
    6、ReactJs基础知识06--条件渲染
    5、ReactJs基础知识05--事件处理
    L2-030 冰岛人 (25分)
    进阶实验5-3.4 迷你搜索引擎 (35分)
    进阶实验2-3.4 素因子分解 (20分)
  • 原文地址:https://www.cnblogs.com/frefre/p/8185599.html
Copyright © 2011-2022 走看看