zoukankan      html  css  js  c++  java
  • C#数组,ArrayList,List

      一、数组声明方式 

      1,声明一个未经初始化的数组引用,以后可以把这引用初使化为一个数组实例

      int[] int_array;

      int_array = new int[2];

      注:数组的引用必须以相同或相关类型实例化,数组初使化默认值,值类型为0,引用类型为null 

      2、声明一个数组引用并对他进行初使化,该数组引用被立即赋予一个数组的新实例。

      int[] int_array= new int[10]; 

      3、声明一个数组,初使化数组引用,并给数组元素赋值

      int[] int_array= new int[3] {1,2,3};

      注:初使化列表以逗号(,)隔开,且列表中的个数必须与数组长度一致。 

            4、与第三种方式基本相同,只是不设置数组的初使化大小,由数组元素确定。

           int[] int_array= new int[] {1,2,3}; 

          5、这是第四种方式的简化版,其中的数组类型与数组大小是根据初使化列表推断出来的。

           int[] int_array= {1,2,3}; 

      多维数据

      多维数组为矩形数组,有多个维度与索引,维度在[]中用逗号隔开,“[,]”,例如最

      常见的二维数组:

      int[,] int_array= new int[2,3] {{1,2,3},{4,5,6}}; 

      交错数组

      交错数组被认为是一个数组的数组,交错数组的每一个矢量都可以有不同的长度。

      首先应定义交错数组中的行(矢量数),再声明每行的元素个数

      int[][] int_array= new int[2][]{new int[]{1,2,3},new int[] {1,2,3,4}}

      注意与二维数组的区别

    二、数组,ArrayList,List三者的区别

    •  数组

    优点:在内存中时连续的,速度较快,操作简单。

    缺点:定义数组时要定义其长度,不是很灵活,过长过短都会造成问题。不方便进行数据的添加、插入和移除。

    例如:int [] int_array=new int[4];

               int_array[0]=111;

               int_array[1]=123;//赋值

               int_array[1]=1234;//修改

    • 集合ArrayList

    优点:命名空间System.Collections下的一部分。大小是动态扩充与收缩的。在声明ArrayList对象时不需要指定它的长度。ArrayList继承了IList接口,可以很方便的进行数据的添加、插入和移除.

    缺点:当向集合插入不同类型的数据后(ArrayList将数据当作object存储),在进行数据处理时容易出现类型不匹配的错误,使用时需要进行类型转换处理,存在装箱与拆箱操作,造成性能大量损耗的现象。

    例如:ArrayList list = new ArrayList();

             list.Add("aa");

             list.Add(11);
             list[1] = 123;//修改

             移除list.Remove(123);

             list.RemoveAt(0);

    • 泛型List

    优点:与集合ArrayList类似且继承IList接口,在声明List集合时也要声明集合内部数据的对象类型,避免了装箱和拆箱的问题。

    例如:List<int> list=new List<int>();

              list.Add(123);

              list[0]=111;//修改

              list.RemoveAt(0);//移除

    如果list.Add("abc");//编译器就会报错,避免了类型安全问题与装箱拆箱的性能问题。 

  • 相关阅读:
    springcloud-spring cloud config统一配置中心
    springcloud-hystrix断路器对微服务的容错处理
    springcloud-feign组件实现声明式的调用
    springcloud-Ribbon-负载均衡组件
    springcloud-Eureka-服务注册与发现核心组件
    springcloud入门-什么是springcloud
    Redis缓存设计及常见问题
    Lucene全文检索入门使用
    redis安装、使用
    nodejs环境 + 入门 + 博客搭建
  • 原文地址:https://www.cnblogs.com/allyh/p/9904958.html
Copyright © 2011-2022 走看看