zoukankan      html  css  js  c++  java
  • 认识 C# 的 ArrayList

    C# 不支持动态数组,用 ArrayList 可以实现动态数组的功能。


    ArrayList 的名称空间是 System.Collections。

    ArrayList 元素类型

    和数组不同,ArrayList 的各个元素的类型可以不同。

    声明对象

    //声明 ArrayList 有三种重载方法,较常用的有两种
    ArrayList al = new ArrayList();
    ArrayList al = new ArrayList(3);

    上例中,参数值 3 表示容量,即可以容纳多少个元素。

    Capacity 与 Count

    ArrayList 具有 Capacity 和 Count 属性,分别表示容量和数量。

    • Capacity 表示 ArrayList 可包含的元素数;Count 表示实际包含的元素数。
    • Capacity 可读可写;Count 只读。

    当 Capacity 不够时

    我们的 Capacity 如果小了,无法容纳我们实际的元素个数,这时再增加元素时:

    如果指定了 Capacity,Capacity 将按指定的 Capacity 的倍数增长(如果 Capacity 小于 2,将按 2 的倍数增长),比如指定了 Capacity 为 3,那么将按 3、6、9、12、15、18 ……线性的方式增长,直到可以容纳实际的元素个数。

    如果没有指定 Capacity 值,Capacity 将按 2、4、8、16、32、64 ……指数的方式增长,直到可以容纳实际的元素个数。

    Capacity 不会自动缩小

    当 Capacity 被自动增大后,即使删除了某些元素,Capacity 也不会自动缩小,需要设置 Capacity 来缩小,注意 Capacity 不能小于当前 Count。

    这里介绍一些 ArrayList 常用的代码,都是望名生义,不再举例。

    获取元素值

    object value = al[index]; //al 为 ArrayList 对象,一般需要再对 value 进行类型转换,比如:int n = (int)value;

    设置元素值

    al[index] = value; //al 为 ArrayList 对象,index 必须小于 Count

    追加元素

    int ArrayList.Add(object value) 返回添加的元素的索引

    插入元素

    void ArrayList.Insert(int index, object value)

    删除元素

    删除元素后,后面的元素会前移,但 Capacity 不会变化。

    void ArrayList.Remove(object obj) 从前(索引 0)往后查找,删除找到的第一个和 obj 相同的元素
    void ArrayList.RemoveAt(int index) 删除索引 index 对应的元素
    void ArrayList.RemoveRange(int index, int count) 从索引 index 开始,删除 count 个元素

    查找元素

    int ArrayList.IndexOf(object value) 从前(索引 0)往后查找,返回找到的第一个和 obj 相同的元素的索引
    int ArrayList.IndexOf(object value, int startIndex)
    int ArrayList.IndexOf(object value, int startIndex, int count)
    int ArrayList.LastIndexOf(object value) 从后往前(索引 0)查找,返回找到的第一个和 obj 相同的元素的索引
    int ArrayList.LastIndexOf(object value, int startIndex)
    int ArrayList.LastIndexOf(object value, int startIndex, int count)

    相关亩?/STRONG>

  • 相关阅读:
    GZS与小公园(DFS)
    II play with GG(思维规律)
    bearBaby loves sleeping(BFS)
    湖南大学新生赛C,G,J题解
    bootstrap 标签页的使用(tab)
    js 循环生成元素,并为元素添加click事件,结果只执行最后一个点击事件
    使用原生js实现一个列表数据展示页面不同的项目状态使整行显示不同颜色。
    【Vue】详解Vue组件系统 目录
    基于TCP与UDP协议的socket通信
    ElementUI三级菜单checkBox全选实现
  • 原文地址:https://www.cnblogs.com/puzi0315/p/2604030.html
Copyright © 2011-2022 走看看