zoukankan      html  css  js  c++  java
  • Array与ArrayList

    1. Array

    public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable

    {

    //////////////////

    }

    Array:长度是不变的(定长),里面的数据元素是同类型的,可以说Array是同一种数据类型的集合

    eg:

    Int32[] array = new Int32[5];

    Int32[] array = new Int32[] { 2, 3, 4 };//会根据初始化器中数据元素个数来确定该数组的大小

    2. ArrayList

    public class ArrayList : IList, ICollection, IEnumerable, ICloneable

    {

    //////////////

    }

    长度是可以动态改变的,里面的数据元素可以是不同类型(值类型、引用类型),可以说ArrayList 可以是多种数据类型的集合

     ArrayList arrlist = new ArrayList();

    //通过下面这两个方法添加/删除元素,动态改变长度,这两个方法的参数都是object类型,如果向其传入的参数是值类型(ValueType)的话,会发生装箱(boxing)操作,运行比较慢,有损性能,

    eg:

    public virtual int Add(object value);  

    public virtual void Remove(object obj);

    3. List<T>

    public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable

    {

    //////////////

    }

    是ArrayList类的泛型等效类并增强了功能,通过以下两个方法添加/删除元素,动态改变长度,这两个方法的参数都是泛型类型,不会发生装箱(boxing)操作,所以List<T>在.NET 2.0以上可以完全代替ArrayList,且应该多用List<T>

    eg: 

    public void Add(T item);

    public bool Remove(T item);

    ----------另外,继承自IEnumberable接口(或IEnumerable <T>泛型接口)的类型都是可枚举的,也就是可以用foreach来遍历集合中的每一个元素

  • 相关阅读:
    【二分】
    【POJ】2456Aggressive cows
    【POJ】1064Cable master
    【动态规划】完全背包
    【DP】01背包
    【全排序】next_permutation
    【网络流】概念+EK算法+Dinic算法+Ford-Fulkerson算法
    【二分图】二分图的多重匹配
    web.xml配置SpringMVC时导致访问的页面资源不存在,跳转页面时出现404
    Struts2获得HttpServletRequest / HttpSession / ServletContext / HttpServletResponse对象
  • 原文地址:https://www.cnblogs.com/notebook2011/p/2783992.html
Copyright © 2011-2022 走看看