ArrayList类

使用大小可按须要动态添加的数组实现IList接口

命名空间:System.Collections

程序集:mscorlib

语法:

public class ArrayList:IList, ICollection, IEnumerable, ICloneable

1.ArrayList加入元素

1.1 ArrayList.Add方法:

语法:public virtual int Add(Object value)

将对象加入到ArrayList的结尾处

ArrayList myAL = new ArrayList();

myAL.Add("Hello");

myAL.Add(123);

myAL.Add("!");

myAL.Add("wang");

这里须要注意的是ArrayList中能够接受数据类型不同的元素!

ArrayList接受空引用作为有效值而且同意反复的元素。

从Add方法的语法能够看到參数类型为Object,因此在运行ArrayList.Add时,须要进行装箱操作。

1.2 ArrayList.AddRange方法:

将ICollection的元素加入到ArrayList的末尾

语法:public virtual void AddRange(ICollection c)

ArrayList myAL0 = new ArrayList();

myAL0.Add( "The" );

myAL0.Add( "quick" );

myAL0.Add( "brown" );

myAL0.Add( "fox" );

// Creates and initializes a new Queue.

Queue myQueue = new Queue();

myQueue.Enqueue( "jumped" );

myQueue.Enqueue( "over" );

myQueue.Enqueue( "the" );

myQueue.Enqueue( "lazy" );

myQueue.Enqueue( "dog" );

Console.WriteLine( "The ArrayList initially contains the following:" );//The quick brown fox

Console.WriteLine( "The Queue initially contains the following:" );// jumped over the lazy dog

myAL.AddRange( myQueue );

Console.WriteLine( "The ArrayList now contains the following:" );//The quick brown fox jumped over the lazy dog

2.使用索引器进行訪问:

int i = (int)myAL[1];

能够看到上诉语句进行了拆箱,myAL[1]的类型为object。须要把引用类型转化为值类型。

3.ArrayList删除元素(Remove, RemoveAt, RemoveRange)

3.1 ArrayList.Remove方法

从ArrayList中移除特定对象的第一个匹配项,注意是第一个(ArrayList中同意反复元素)。

语法:public virtual void Remove(Object obj)

myAL.Remove(123);

运行完上诉代码。已移除元素以下的元素将上移以占领空出的位置,即myAL[0] = "Hello", myAL[1] = "!", myAL[2] = "wang"

myAL.Remove(456);

运行完上诉代码,假设ArrayList不包括指定对象,则ArrayList保持不变,且不引发异常。

3.2 ArrayList.RemoveAt方法

移除ArrayList的指定索引处的元素

语法:public virtual void RemoveAt(int index)

myAL.RemoveAt(1);

运行完上诉代码。已移除元素以下的元素将上移以占领空出的位置,即myAL[0] = "Hello", myAL[1] = "wang"

假设索引小于0或者大于等于Count,则引发ArgumentOutOfRangeException异常。

3.3 ArrayList.RemoveRange方法

从ArrayList中移除一定范围的元素

语法:public virtual void RemoveRange(int index, int count)

myAL.Add("wu");

myAL.Add("zhang");

myAL.Add("liu");//此时myAL为 "Hello" "wang" "wu" "zhang" "liu"

myAL.RemoveRange(1, 2);

运行完上诉代码,myAL为 "Hello" "zhang" "liu"

4.ArrayList.Capacity属性

获取或设置ArrayList可包括的元素数

语法:public virtual int Capacity{get; set; }

能够通过调用TrimToSize或通过显示设置Capacity属性降低容量。

4.1 ArrayList.TrimToSize方法

将容量设置为ArrayList中元素的实际数目

若要将ArrayList重置为它的初始状态,在调用TrimToSize之前调用Clear方法。修正空ArrayList会将ArrayList的容量设置为默认容量

ArrayList myAL1 = new ArrayList();

myAL1.Add( "The" );

myAL1.Add( "quick" );

myAL1.Add( "brown" );

myAL1.Add( "fox" );

myAL1.Add( "jumped" );

Console.WriteLine( " Count : {0}", myAL1.Count );//5

Console.WriteLine( " Capacity : {0}", myAL1.Capacity );//16

myAL1.TrimToSize();

Console.WriteLine( " Count : {0}", myAL1.Count );//5

Console.WriteLine( " Capacity : {0}", myAL1.Capacity );//5

myAL1.Clear();

Console.WriteLine( " Count : {0}", myAL1.Count );//0

Console.WriteLine( " Capacity : {0}", myAL1.Capacity );//5

myAL1.TrimToSize();

Console.WriteLine( " Count : {0}", myAL1.Count );//0

Console.WriteLine( " Capacity : {0}", myAL1.Capacity );//16

4.2 ArrayList.Clear方法

从ArrayList中移除全部元素

语法:public virtual void Clear()

注意:Count被设置为零,可是Capacity保持不变

5.ArrayList.Count属性

获取ArrayList中实际包括的元素数

语法:public virtual int Count{get;}

与Capacity的差别:

Capacity是ArrayList能够存储的元素数。

Count是ArrayList中的实际元素数。

Capacity总是大于或等于Count。

假设加入元素时Count超过Capacity,则通过在复制旧元素和加入新元素之前又一次分配内部数组来使容量自己主动添加。

6.ArrayList插入元素

6.1 ArrayList.Insert方法

将元素插入ArrayList的指定索引处

语法:public virtual void Insert(int index, Object value);

注意 要插入的value能够为NULL

6.2 ArrayList.InsertRange方法

将集合中的某个元素插入ArrayList的指定索引处

语法:public virtual void InsertRange(int index, ICollection c);

注意 集合本身不能为NULL。但它能够包括为NULL的元素

/*-----------------------------------------------------------------------------*/

ArrayList还有非常多的属性和方法,这里就不一一赘述,能够查阅msdn


C#中ArrayList类的使用的更多相关文章

  1. Java中ArrayList类详解

    1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...

  2. Java中 ArrayList类常用方法和遍历

     ArrayList类对于元素的操作,基本体现在——增.删.查.常用的方法有: public boolean add(E e) :将指定的元素添加到此集合的尾部. public E remove(in ...

  3. [转] Java中ArrayList类的用法

    1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...

  4. Java中ArrayList类的用法

    1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...

  5. Java中ArrayList类

    ArratList 类:存放同一数据类型容器(只能为引用数据类型,因实际其内部存放的是地址) 1.导入其所在包 import java.util.ArratList 2.创建对象 ArrayList& ...

  6. Java中 ArrayList类的使用

    java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素.此类提供一些方法来操作内部存储 的元素. ArrayList 中可不断添加元素,其大小也自动增长. ArrayL ...

  7. ArrayList类中的contains()方法底层依赖的是equals()方法

    ArrayList类中的contains()方法底层依赖的是equals()方法.若集合中的元素是自定义对象,则应该重写该类父类Object的equals()方法,否则对象永远都不相同(因为都是new ...

  8. 实现一个自定义的ArrayList类,实现将原List中的每个数据都乘以10

    1.首先自定义一个Operate接口,如下所示: public interface Operate { public Integer caozuo(Integer i); } 2.实现自定义的Arra ...

  9. 详解Java中ArrayList、Vector、LinkedList三者的异同点(转)

    本文转自http://my.oschina.net/zzw922cn/blog/491631 一.ArrayList ArrayList是一个可以处理变长数组的类型,这里不局限于“数”组,ArrayL ...

随机推荐

  1. HDU 多校1.8

  2. 队列 P1160 队列安排(啊啊 不会啊)

    洛谷 题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人: 2.2-N号同学依次入列,编号为i的同学入列方式为 ...

  3. git log 查看某文件的修改历史

    先进入此文件所在的目录下 1. git log --help 所有的git命令都可以通过git manual查看 在synopsis中可以看到公式  git log [<options>] ...

  4. python3开发进阶-Django框架学习前的小项目(一个简单的学员管理系统)

    ''' 自己独立写一个学员管理系统 表结构: 班级表: -id -grade_name 学生表: -id -student_name -grade 关联外键班级表 老师表: -id -teacher_ ...

  5. 软件配置篇-MySQL下载及安装

    1.进入MySQL官网下载 下载地址:https://dev.mysql.com/downloads/mysql/ 选择合适的版本下载. 2.安装MySQL 解压后文件夹一般名为:mysql-x.x. ...

  6. SQL函数学习(十六):STUFF()函数

    16.STUFF()函数 STUFF()函数用于删除指定长度的字符,并可以在制定的起点处插入另一组字符. 16.1 STUFF()函数语法 select stuff(列名,开始位置,长度,替代字符串) ...

  7. 十. 图形界面(GUI)设计6.文本框和文本区

    在图形界面中,文本框和文本区是用于信息输入输出的组件. 文本框 文本框(JTextField)是界面中用于输入和输出一行文本的框.JTextField类用来建立文本框.与文本框相关的接口是Action ...

  8. JavaBean的详细及引用

    1.JavaBean实际是具有统一接口格式的java类 2.JavaBean的组成:属性(Properties).方法(Method).事件(Events) 3.一个JavaBean的例子(该例子是用 ...

  9. iOS开发——使用Autolayout弹出键盘

    参考: http://segmentfault.com/q/1010000002420050 http://blog.csdn.net/qq448631961/article/details/4034 ...

  10. 如何提高码农产量,基于ASP.NET MVC的敏捷开发框架之移动端开发随笔二

    前言 在前一篇文章中我已经做过开篇,接下来的随笔会详细讲一下我们的开发框架是如何实现的,专业的事由专业的人来讲,以后就由我们的高级码农小李英文名查尔斯和他的师父厂长(因为姓陈,酷爱摄影,我们的文艺片都 ...