C#中ArrayList类的使用
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类的使用的更多相关文章
- Java中ArrayList类详解
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...
- Java中 ArrayList类常用方法和遍历
ArrayList类对于元素的操作,基本体现在——增.删.查.常用的方法有: public boolean add(E e) :将指定的元素添加到此集合的尾部. public E remove(in ...
- [转] Java中ArrayList类的用法
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...
- Java中ArrayList类的用法
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...
- Java中ArrayList类
ArratList 类:存放同一数据类型容器(只能为引用数据类型,因实际其内部存放的是地址) 1.导入其所在包 import java.util.ArratList 2.创建对象 ArrayList& ...
- Java中 ArrayList类的使用
java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素.此类提供一些方法来操作内部存储 的元素. ArrayList 中可不断添加元素,其大小也自动增长. ArrayL ...
- ArrayList类中的contains()方法底层依赖的是equals()方法
ArrayList类中的contains()方法底层依赖的是equals()方法.若集合中的元素是自定义对象,则应该重写该类父类Object的equals()方法,否则对象永远都不相同(因为都是new ...
- 实现一个自定义的ArrayList类,实现将原List中的每个数据都乘以10
1.首先自定义一个Operate接口,如下所示: public interface Operate { public Integer caozuo(Integer i); } 2.实现自定义的Arra ...
- 详解Java中ArrayList、Vector、LinkedList三者的异同点(转)
本文转自http://my.oschina.net/zzw922cn/blog/491631 一.ArrayList ArrayList是一个可以处理变长数组的类型,这里不局限于“数”组,ArrayL ...
随机推荐
- luogu P1107 最大整数
题目描述 设有n个正整数 (n<=20), 将它们连接成一排, 组成一个最大的多位整数. 例如: n=3时, 3个整数13, 312, 343连接成的最大整数为: 34331213 又如: n= ...
- [ZOJ3316]Game
题意:有一个棋盘,棋盘上有一些棋子,两个人轮流拿棋,第一个人可以随意拿,以后每一个人拿走的棋子与上一个人拿走的棋子的曼哈顿距离不得超过$L$,无法拿棋的人输,问后手能否胜利 把棋子看做点,如果两个棋子 ...
- WebService综述
一.序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分.但是不得不承认的是Web ...
- Spring整合jdbc-jdbc模板对象
1,Spring 中封装了一个可以操作数据库的对象(JDBCTemplate:jdbc模板),这个对象封装了JDBC技术 2,与DBUtil中的QueryRunner对象非常相似 3,操作 (1)导包 ...
- jQuery 移除绑定事件
移除事件 unbind(type [,data]) //data是要移除的函数 $('#btn').unbind("click"); //移除click $('#btn') ...
- linux的打包与解压
zip: 打包 :zip something.zip something (目录请加 -r 参数) 解包:unzip something 指定路径:-d 参数 创建加密 zip 包 使用 -e 参数可 ...
- JavaScript:this是什么
JavaScript:this是什么? 定义:this是包含它的函数作为方法被调用时所属的对象. 说明:这句话有点咬嘴,但一个多余的字也没有,定义非常准确,我们可以分3部分来理解它! 1.包含它的函数 ...
- Oracle TRCA 工具 说明 10046
本篇文章主要介绍了"Oracle TRCA 工具 说明 ",主要涉及到Oracle TRCA 工具 说明 方面的内容,对于Oracle TRCA 工具 说明 感兴趣的同学可以参考一 ...
- DELPHI HMAC256
DELPHI HMAC256 unit HMAC;interfaceuses System.SysUtils, EncdDecd, IdHMAC, IdSSLOpenSSL, IdHas ...
- js时间小总结
1.js获取时间 var myDate = new Date(); 1 myDate.getYear(); //获取当前年份(2位) 2 myDate.getFullYear(); //获取完整的年份 ...