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 ...
随机推荐
- 20、Flask实战第20天:Flask上下文
Local线程隔离对象 我们知道通过request可以获取表单中的数据.如果是多个用户同时在用网站,而全局request就只有一个,那么Flask是如何分辨哪用户对应哪个请求呢? 这种情况下,就会用到 ...
- [BZOJ 4144] Petrol
Link: BZOJ 4144 传送门 Solution: 一道不错的图论综合题 因为只询问关键点,因此重点是要求出关键点之间的最短路,以最短路建图 记$nst[i]$为离$i$最近的关键点:可以发现 ...
- [BZOJ 1195] 最短母串
Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1195 Solution: 看到数据范围n<=12,就要往状压DP上想 为了保证后项 ...
- SqlMapConfig.xml详细介绍
1,连接数据库 <!--配置环境,默认的环境id为oracle --> <environments default="oracle"> <!-- 配置 ...
- Mac sublime 编译Python UnicodeEncodeError: 'ascii' codec can't encode characters in position 6-8: ordinal not in range(128)
刚学Python,想打印个“hello 张林峰”,代码如下: #!/usr/bin/env python3 # -*- coding: utf-8 -*- print('hello 张林峰') 用su ...
- 引用日志log4net.dll的web.config配置
<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigu ...
- iOS: ios视频播放(MPMediaPlayerController,AVPlayer,AVPlayerViewcontroller、ffmpeg-AVPlayer)
介绍: 和音频播放一样,ios也提供个很多的API.如mediaPlayer.framework下的MPMediaPlayerController.AVFounditon.framework下的AVP ...
- Spring的学习(IoC,AOP)等
下面这个系列是非常好的例子: http://www.yiibai.com/spring/spring-3-hello-world-example.html 正在看,把一些基础夯实. IoC可以从下面一 ...
- 【转载】网络攻击技术(三)——Denial Of Service & 哈希相关 & PHP语言 & Java语言
找到了这个系列的原始作者: http://www.cnblogs.com/rush/archive/2012/02/05/2339037.html 最近网络安全成了一个焦点,除了国内明文密码的安全事件 ...
- 【OpenStack 虚拟机初始化user-data & Cloud-init】
示例: import httplib import json import base64 tenant_id='xxx' token='xxx' compute_host="xxx" ...