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


    --集合概述。

    可以动态扩容,可以指定长度,但超出时,下次扩容时是原来的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=101;                    //工号
        se.Age=17;              //年龄
        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},
         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

  • 相关阅读:
    Python内置函数 __import__ 动态加载模块
    Django_静态资源配置和ajax(九)
    GO语言学习(五)Go 语言基础语法
    GO语言学习(四)GO语言语言结构
    GO语言学习(三)GO语言学习API文档
    GO语言学习(二)Windows 平台下 LiteIDE 的安装和使用
    GO语言学习(一)Windows 平台下 Go 语言的安装和环境变量设置
    VS无法访问IIS元数据库 您没有足够的特权访问计算机上的IIS网站
    本地存储localStorage以及它的封装接口store.js的使用
    操作类封装
  • 原文地址:https://www.cnblogs.com/matianpeng/p/8183495.html
Copyright © 2020-2023  润新知